What it is
Amazon Simple Email Service, SES, sends and receives email for applications. Software hands it a message through an API or SMTP, and SES delivers it, tracks bounces and complaints, and signs it with DKIM. It is built for system mail like receipts, notices and sign-in links, and for marketing mail at volume.
On the receiving side, receipt rules can store incoming mail in S3, call a Lambda function or forward it on. New accounts start in a sandbox that can only send to verified addresses until AWS approves production access, which protects the shared sending reputation. Dedicated IP addresses are available for senders who want their own.
How I use it
- Rental Pilot sends invoices, delivery and return notices and alerts through SES. Production sends live; the sandbox queues mail for approval, and its customer addresses are scrubbed.
- Lend Pilot sends sign-in links, reminders, renewal drips and campaigns through a status-tracked outbox with retries, so a failed send is recorded and retried.
- Mail sent as each company is signed with SPF, DKIM and DMARC.
- Inbound mail for mervinc.ca lands in S3 through a receipt rule, and a Lambda rewrites the headers so it passes SPF and DMARC before forwarding it.
SES is the right tool when software needs to send mail reliably and cheaply, and the domain's SPF, DKIM and DMARC are set up properly. Gmail, Yahoo and Outlook now require those from bulk senders. I use SES for all system mail so it lands in the inbox, signed as the company it comes from.
Questions
Why do invoices from my system land in spam?
Usually missing or weak SPF, DKIM or DMARC records. The email health check on my site grades a domain in about a second and says what to fix.
How do you stop a test system emailing real customers?
In Rental Pilot the sandbox never sends live: its mail queues for approval and its customer addresses are scrubbed.