Prompt
What are some good options for sending receipts and system notifications from a backend app?
Latest observation
If you mean email receipts, password resets, invoices, alerts, and other backend-triggered messages, I’d use a transactional email provider rather than sending directly from your server.
Good options
| Provider | Best for | Main trade-off |
|---|---|---|
| Resend | Modern apps, excellent developer experience | Less mature operational ecosystem than AWS |
| Postmark | Receipts and other business-critical transactional mail | More expensive; focused on transactional email |
| Amazon SES | Very high volume / lowest cost | More infrastructure work |
| Twilio SendGrid | Transactional + marketing email | Larger/more complex platform |
| Mailgun | Flexible email infrastructure and APIs | Pricing/DX can be less attractive for small apps |
Postmark explicitly separates transactional messages such as order confirmations and password resets from broadcast mail, and provides delivery/bounce/complaint webhooks. Postmark Amazon SES provides both an API and SMTP interface and is particularly attractive when you're already heavily invested in AWS. AWS Documentation
My default recommendation
For a typical SaaS/backend app:
Resend if you want the simplest developer experience and are starting from scratch.
Postmark if a receipt or notification absolutely needs to reach the inbox and you want a provider focused specifically on transactional delivery.
SES if you're sending hundreds of thousands/millions of emails and minimizing infrastructure cost is important. The trade-off is that you take on more of the bounce, complaint, event, and template plumbing yourself. AWS Documentation+1
Architecture I'd use
Don't have business logic directly call the email provider everywhere. Instead:
Backend
│
├── Create order/payment
│
└── enqueue "receipt.created"
│
▼
Email worker
│
▼
Email provider API
│
▼
Customer inbox
Then consume provider webhooks for delivered / bounced / complained / failed events and record those against the message in your database. This makes retries, observability, and provider migration much easier.
One other important point: keep transactional email separate from marketing/bulk email—ideally using separate streams/subdomains—so a marketing campaign doesn't damage the reputation of password resets and receipts. Zedule
If I were choosing for a new backend today: Resend → Postmark → SES, in that order depending on how much you value simplicity versus maximum control/cost efficiency.
Citations
- https://postmarkapp.com/developer/
- https://docs.aws.amazon.com/ses/latest/dg/send-email.html
- https://lettr.com/blog/best-transactional-email-services/
- https://zedule.app/blog/email-providers-for-saas-builders/
- https://www.mailercloud.com/blog/best-transactional-email-services
- https://www.getfluxly.com/blog/transactional-email-providers
- https://www.activeskill.dev/blog/transactional-email-providers-resend-postmark-sendgrid-ses
- https://dreamlit.ai/blog/best-email-api-providers
- https://propicked.com/blog/best-transactional-email-api-2026-resend-postmark-sendgrid-mailgun-amazon-ses
- https://apiscout.dev/guides/best-email-apis-for-developers-2026
- https://tinysend.co/blog/best-email-api-developers-2026