I skipped Mailgun and set up an email service with Amazon SES: and why you should too.

How I Set Up My Own Email Service with Amazon SES
When I started building apps and running a Ghost blog, I realized I needed a reliable way to send email. Not just newsletters or fancy marketing campaigns—sometimes you just need a simple, dependable service for account emails, contact forms, and app notifications. Instead of paying for a third-party service like Mailgun or SendGrid, I decided to try Amazon’s Simple Email Service (SES).
Why Amazon SES?
Amazon SES (Simple Email Service) is exactly what it sounds like: a service for sending and receiving email through Amazon Web Services (AWS). It’s cost-effective (you only pay for what you send), and it integrates well with apps and websites. The catch is that it takes a little setup, but once it’s running, it’s solid.
Step 1: Verify Your Domain or Email
Amazon requires you to prove you own the email address or domain you want to send from. You can either:
- Verify a single email (like noreply@mydomain.com), or
- Verify the whole domain so you can send from multiple addresses.
For a domain, AWS gives you DNS records (TXT and CNAME). You copy these into your domain host (like Namecheap, GoDaddy, or Route53), and once verified, you’re good to go.
Step 2: Move Out of the Sandbox
By default, SES starts in “sandbox mode,” which means you can only send emails to verified addresses. To use it in production, you submit a request to Amazon explaining how you’ll use SES (for example, “to send account notifications for my app”). Once approved, you can send to anyone.
Step 3: Get SMTP Credentials
SES works over SMTP like any other email service. In the AWS console, you generate SMTP credentials (they look like a username and password). These are what you’ll plug into your app, Ghost blog, or whatever service needs to send email.
Step 4: Configure Your App
For my app, I just needed a way for users to contact me and for the app to send back simple responses. I added the SMTP details (host, port, user, password) to my app’s config, and email started working right away. No extra service fees.
Next Step: Using SES with Ghost
Ghost, the blogging platform I run, recommends services like Mailgun for email. But since I already have SES set up, the plan is to connect Ghost to SES instead. It’s the same process: give Ghost the SMTP credentials from Amazon, and it should send newsletters, password resets, and contact emails using my own domain. That way I stay in control and keep costs down.
Comments ()