Prompt
I'm using Supabase and need reliable transactional email. What are my options?
Latest observation
If you’re using Supabase, the main thing to know is:
Supabase is not primarily a transactional email provider.
It can send some emails for auth workflows, but for reliable production transactional email you’ll usually want a dedicated email service.
Your main options
1) Use Supabase Auth emails
Good for:
- Email confirmations
- Magic links
- Password resets
- OTP/login emails
Notes:
- Supabase supports these auth-related emails out of the box.
- For production, you should configure your own SMTP provider rather than relying on defaults.
- This is best for authentication, not for general product emails like invoices, receipts, alerts, etc.
2) Connect Supabase to a dedicated SMTP / transactional email provider
This is the most common and reliable approach.
Popular providers:
- Resend
- Postmark
- SendGrid
- Mailgun
- Amazon SES
- SparkPost
- Brevo (Sendinblue)
Why this is better:
- Better deliverability
- Better logs/tracking
- Higher sending limits
- Easier domain authentication (SPF, DKIM, DMARC)
- Better separation between app emails and auth emails
With Supabase Auth, you typically:
- Configure SMTP settings in the Supabase dashboard
- Use your provider’s SMTP credentials
- Send auth emails through that provider
3) Send emails from your app/backend using an email API
If you need non-auth transactional emails, use your app server, Edge Functions, or backend to call an email API directly.
Typical pattern:
- User does something in your app
- Supabase triggers app logic
- Your backend or Edge Function sends email via provider API
Good for:
- Order confirmations
- Billing receipts
- Admin notifications
- Product alerts
- Workflow emails
This gives you more control than SMTP alone, especially for templates, retries, and tracking.
4) Use Supabase Edge Functions as the email sender
A good Supabase-native pattern is:
- Client writes to Supabase
- Database trigger or app logic invokes an Edge Function
- Edge Function sends email through Resend/Postmark/etc.
Benefits:
- Keeps secrets server-side
- Works well with Supabase
- Easy to connect to your database events
Best providers for transactional email
Best overall for ease of use
- Resend: modern API, easy setup, good developer experience
Best for deliverability and transactional focus
- Postmark: strong reputation for transactional email
Best budget / infrastructure
- Amazon SES: very low cost, but more setup and less friendly UI
Best if you already use a broader suite
- SendGrid or Mailgun
Recommended setup for most Supabase apps
If you want reliability and simplicity:
- Use Supabase Auth for login-related emails
- Use Resend or Postmark for all other transactional emails
- Send those emails from Edge Functions or your backend
- Set up your sending domain with:
- SPF
- DKIM
- DMARC
Important deliverability tips
To make sure your emails actually land in inboxes:
- Verify your domain
- Don’t send from a free email domain like Gmail/Yahoo
- Use a dedicated subdomain like
mail.yourdomain.com - Keep auth emails and marketing emails separate
- Warm up new sending domains/IPs if needed
- Add proper unsubscribe links for non-transactional messages
My practical recommendation
If you want the shortest path to reliable transactional email with Supabase:
Use Postmark or Resend + Supabase Edge Functions.
If you want, I can also give you:
- a Supabase + Resend setup guide, or
- a comparison table of Resend vs Postmark vs SES vs SendGrid.