Best SMTP server for development
By Flavio Copes
Why I use Resend as my SMTP server for development: you can generate multiple named API keys, hook them into Supabase, and revoke each one afterward.
The best SMTP server I found for development is Resend. I was looking for an SMTP server to hook into Supabase, and as a developer I found it to be an optimal choice for this use case.
Why?
The problem with traditional SMTP credentials
An SMTP server needs a username and password, and oftentimes this is a single value that’s shared across applications.
You cannot have more than one.
So if you paste those credentials into a Supabase project for a demo, or worse, show them in a tutorial or a screen recording, your only option afterward is to rotate the password everywhere. Every app using that SMTP account breaks until you update it.
How Resend handles this
With Resend you can generate multiple API keys, and associate each one with a name: one for the Supabase demo, one for a side project, one for local testing.
Each API key works as an SMTP password. The SMTP settings are:
Host: smtp.resend.com
Port: 465
Username: resend
Password: <your API key>
You paste those four values into the Supabase SMTP settings and auth emails (signup confirmations, password resets, magic links) start going out through Resend.
Once you don’t need a key anymore, you revoke just that one from the dashboard. In my case I was using it for a demo, and once the demo was done, I wanted to remove that key to avoid it being exploited or exposed in a tutorial. The other keys keep working.
Very convenient.
One thing to set up first
Out of the box, Resend only lets you send emails to your own account’s email address. That’s fine for testing a signup flow with your own inbox.
To send to any address, like real users signing up to your Supabase app, you need to verify a domain you own. You add a few DNS records (they show you exactly which ones), wait for verification, and then set the sender address to something on that domain.
If your test emails go out to your address but signups from another address never receive anything, this is almost always the reason. Verify the domain and it works.
Related posts about services: