App Finishers

Fix guide · updated 2026-11-07

Supabase: "Error sending confirmation email"

Error sending confirmation email · Email address not authorized

Sign-up worked every time while you were testing. Then real people try it and get Error sending confirmation email, or Email address not authorized, or the email simply never arrives. Nothing is wrong with your code. Supabase's built-in email was never meant for real users.

Why it happens

Supabase's built-in email service is for testing only, and it has two limits that hit the moment you launch:

You tested with your own address, which is on your team, so everything looked fine. If you already connected your own email provider and still see Error sending confirmation email, the provider refused the message: jump to step 5.

The fix: connect a real email provider

1. Pick a provider

Supabase's docs list Resend, Amazon SES, Postmark, Twilio SendGrid, ZeptoMail and Brevo. Several have free plans big enough for a new app. Resend and Postmark are the quickest to set up.

2. Verify your domain with the provider

The provider gives you a few DNS records (usually SPF and DKIM). Add them where your domain's DNS lives (Cloudflare, Namecheap, GoDaddy…) and wait for the provider to show the domain as verified. This step is what keeps your emails out of spam folders.

3. Enter the SMTP details in Supabase

Supabase dashboard → Authentication → SMTP Settings (under Emails) → enable custom SMTP and fill in:

4. Raise the rate limit

Right after you save, Supabase starts you at 30 emails per hour. If you expect more sign-ups than that, go to Authentication → Rate Limits and raise it.

5. Test, and read the log if it fails

Sign up with an address that isn't on your team. If it still fails, Supabase → Logs (Auth) shows the exact answer from your provider. The usual causes:

The shortcut, and why to avoid it

You can turn off Confirm email in Supabase's email provider settings so sign-ups no longer need an email at all. That's fine for a quick test, but on a live app it lets anyone sign up with fake addresses and leaves users with no way to reset a password. Connect a real provider instead. It takes about 15 minutes.

Still not arriving?

If emails send but land in spam, your domain records (SPF, DKIM, and ideally DMARC) need fixing. If the confirmation link sends people to localhost, see our guide on login redirects to localhost.