Mailing

Select and validate a transactional email provider for your product.

When to use this page

  • You need transactional email for product flows (sign-up, password reset, notifications).
  • You are choosing between Mailgun, Resend, and AWS SES.
  • You want to avoid deliverability issues before launch.

Prerequisites

  • Sending domain available and accessible for DNS verification.
  • Email use case defined (transactional only vs mixed usage).
  • Expected sending volume roughly estimated.

Provider comparison

ProviderBest forTradeoff
MailgunAdvanced deliverability controls and reportingSlightly heavier setup and account verification
ResendFastest developer setup and clean DXFewer legacy enterprise controls than older platforms
AWS SESAWS-native stacks and strong price/performanceRequires AWS setup and sandbox exit workflow

Mailgun

Strong deliverability tooling and mature APIs.

  • Free tier requires: client email and phone number for account verification

Resend

Simple integration path and modern developer tooling.

  • Free tier requires: verified sending domain and client email (ownership can be moved to a paid org account)

AWS SES

Best fit for fully AWS-native infrastructure.

  • Getting started requires: AWS account, verified sender/domain, and production access approval (outside sandbox)

How to choose

  • Use Mailgun when deliverability analytics and controls are a primary requirement.
  • Use Resend when speed of implementation is more important than advanced platform features.
  • Use SES when the rest of your stack is on AWS and you want native IAM/governance.

Verify

  • Sender domain is verified and DNS records are propagated.
  • Test emails are received by at least two external inbox providers.
  • Bounce/complaint metrics are visible in provider dashboard.

Troubleshooting

  • Verification stuck: Recheck DNS records (SPF/DKIM) and wait for propagation.
  • Low deliverability: Confirm domain reputation, SPF/DKIM/DMARC alignment, and email content quality.
  • SES blocked in sandbox: Request production access and validate recipient restrictions.

See also: Application-layer implementation

On this page