Application Integration
    🔗Application Integration

    Amazon SES

    Managed email platform for sending and receiving email without running mail servers

    Every application on earth needs to send email: password resets, order confirmations, invoices, newsletters. The hard part is not sending; it's getting the message into the inbox instead of the spam folder. Mailbox providers judge senders by reputation, and a random server in your garage has none. SES is Amazon's mailroom. You hand it a message, it signs it with the cryptographic signatures (DKIM) that prove it really came from your domain, and it pushes it out through infrastructure that mailbox providers already trust. It also works in reverse: mail sent to your domain can land in S3, fire a Lambda function, or ping an SNS topic. And the price is almost embarrassing: about a dime per thousand messages.

    SES provides send and receive capability through an SMTP interface, AWS SDKs, and the SES API v2. Sending domains are verified with DNS records; Easy DKIM publishes the signing keys through Route 53 so every message is authenticated. New accounts start in the sandbox, which limits sending to verified addresses, 200 messages per 24 hours, and one message per second, until you request production access and AWS reviews your use case. SES tracks bounce and complaint rates per account on a reputation dashboard and publishes sending events to CloudWatch or Amazon Data Firehose for analytics in Redshift or OpenSearch; SNS can notify you on every bounce, complaint, and delivery. Receiving works by accepting mail for verified domains, optionally storing the raw message in S3, and triggering Lambda or SNS.

    Key Capabilities

    • Send through the SMTP interface, AWS SDKs, or the SES API v2, from EC2, Lambda, or anywhere that can reach AWS
    • Easy DKIM signs every message with keys published via Route 53, so mailbox providers can verify your domain
    • Reputation dashboard tracks bounce and complaint rates per account; SNS notifies on every bounce, complaint, and delivery
    • Receiving accepts mail for verified domains, stores raw messages in S3, and triggers Lambda or SNS for autoresponders and ticket systems
    • Sending and reputation events publish to CloudWatch or Amazon Data Firehose for analytics in Redshift or OpenSearch
    • Pay-as-you-go at $0.10 per 1,000 messages, with a free tier of 3,000 messages per month for the first 12 months

    Gotchas & Constraints

    Gotcha #1: deliverability is your job, not SES's. High bounce or complaint rates will get your sending paused, so process the feedback notifications and keep bad addresses on a suppression list. Gotcha #2: the sandbox exit is a real review; describe your use case, volume, and bounce handling or you'll wait. Constraints: keep total message size, including attachments, under 40 MB, and expect throughput throttling on large messages.

    A 200-person online retailer sends 400,000 transactional emails a month: order confirmations, shipping notices, password resets. They were paying about $420 per month for it, because their marketing platform charges per subscriber and transactional mail was riding on the same bill. They migrate to SES: the domain is verified in Route 53 with Easy DKIM, the checkout service sends through the SMTP endpoint, and an SNS topic catches bounces so dead addresses go on the suppression list automatically. They request production access with a written use case and are approved after a short review. At $0.10 per 1,000 messages, 400,000 emails costs about $40 per month. Deliverability holds because complaint rates stay near zero: the mail is wanted, authenticated, and bounced addresses never get retried.

    The Result

    email costs drop by roughly 90%, bounces are handled automatically, and password-reset mail lands in inboxes within seconds.

    Official AWS Documentation