Skip to main content

Migrating from Amazon SES to Mailofly

Amazon Simple Email Service (SES) is inexpensive raw infrastructure, but it forces developers to build and maintain their own email platform. Tracking simple bounces or opens with SES typically requires setting up:
  • Amazon SNS topics for bounce and complaint notifications
  • Amazon SQS queues or AWS Lambda functions to process payloads
  • Custom database tables to store suppression blacklists
  • CloudWatch metrics and alarms for deliverability health
  • Complex IAM policies and SigV4 authentication headers
Mailofly delivers an end-to-end email platform where deliverability, suppression handling, real-time analytics, and webhooks are fully managed out of the box.

Infrastructure Architecture Comparison


Why Teams Migrate from AWS SES

  • Zero Infrastructure Overhead: No more maintaining Lambda functions, IAM roles, and SNS topics just to record a bounced email.
  • Automatic Suppressions: Bounces and spam complaints are automatically suppressed by Mailofly to protect your domain reputation.
  • Readable Code: Send rich emails with attachments in 5 lines of code instead of 40 lines of AWS SDK v3 MIME assembly.
  • Native Inbound Webhooks: Receive and parse inbound emails without setting up SES → S3 → Lambda pipelines.

1. Code Comparison

Node.js / TypeScript


Python


2. DNS & DKIM Verification

AWS SES uses Easy DKIM with three CNAME records pointing to *.amazonses.com. Mailofly uses modern 2048-bit DKIM records.
  1. In Mailofly, go to DomainsAdd Domain.
  2. Add the DKIM and SPF records generated by Mailofly to Route 53 or your DNS host:
    • DKIM: mailofly._domainkey.yourdomain.com (TXT or CNAME)
    • SPF: Update your existing SPF TXT record:
  3. Mailofly will verify your records and enable sending within minutes.

3. Retiring the SNS/SQS Bounce Pipeline

In SES, if you do not handle bounce events, AWS will shut down your sending account when bounce rates cross 5%. With Mailofly:
  1. Automatic Suppression: When an address hard-bounces or marks your email as spam, Mailofly automatically flags it. Future sends to that address will be blocked instantly at the API level without burning sending credits or impacting ISP reputation.
  2. Simplified Webhooks: Instead of setting up an SNS topic, SQS queue, and Lambda worker, simply paste your app’s webhook URL in Mailofly Webhooks.
  3. You can safely decommission your AWS SNS topics and Lambda bounce processors once you finish migration.

4. SMTP Relay Configuration

If you send via SES SMTP credentials:

Migration Checklist

  • Add domain to Mailofly and configure DNS records.
  • Update SPF TXT record to include include:mailofly.com.
  • Export existing suppression lists from SES (via AWS CLI or your database) and import into Mailofly.
  • Replace @aws-sdk/client-ses or boto3 calls with @mailofly/node or mailofly.
  • Configure Mailofly webhooks to notify your backend of delivery events.
  • Tear down unused AWS SNS topics, SQS queues, and Lambda bounce processors.
  • Remove include:amazonses.com from your SPF record once migration is verified.