Skip to main content
Supabase ships with a built-in email sender that’s great for testing - and not much else. It rate-limits to 2 emails per hour on the free tier, sends from a generic noreply@mail.app.supabase.io address, and lands in spam often enough that real users never finish signing up. Configuring custom SMTP in Supabase fixes all three problems. This guide walks through the setup using Sequenzy as your SMTP provider, but the same steps apply to any SMTP service.

Why You Need Custom SMTP in Supabase

The default Supabase email sender exists so you can verify your auth flow works. The moment you have real users, the default sender becomes a liability:
  • Strict rate limits - 2 emails per hour on free, 30/hour on Pro. A signup spike will start dropping confirmations.
  • Generic sender domain - noreply@mail.app.supabase.io looks like a phishing attempt to most inbox providers and to your users.
  • Bad deliverability - the shared Supabase IP pool is reused by thousands of projects. One bad actor’s reputation hits everyone.
  • No template control beyond the basics - Supabase’s built-in editor handles substitution and that’s it. No design system, no preview tooling, no versioning.
Switching to custom SMTP solves rate limits and sender identity. Pairing it with a dedicated transactional provider like Sequenzy also solves deliverability and template management.

Before You Start

You’ll need:
  1. A Supabase project with an Auth instance
  2. An SMTP provider account (this guide uses Sequenzy)
  3. A verified sending domain (your provider will walk you through SPF/DKIM/DMARC setup)
If you don’t have an SMTP provider yet, Sequenzy gives you a shared-domain sender automatically so you can ship without configuring DNS first - then move to your own domain when you’re ready.

Step 1: Get Your SMTP Credentials

In Sequenzy:
  1. Open Settings → Integrations and click Connect next to Supabase
  2. Switch to the Auth emails tab
  3. Click Generate key to create an API key for the Supabase SMTP user
You’ll see four values:
SettingValue
Hostsmtp.sequenzy.com
Port587
Usernameapi
PasswordYour Sequenzy API key
Copy the API key now - it’s only shown once.

Step 2: Enable Custom SMTP in Supabase

  1. Open your project at supabase.com/dashboard
  2. In the left sidebar, go to Authentication
  3. Under Notifications, click Emails
  4. Scroll to SMTP Settings and toggle Enable Custom SMTP
The exact path is Authentication → Emails (under Notifications) → SMTP Settings. Earlier Supabase versions called this section “SMTP Configuration” and placed it under Project Settings - it’s now lives inside the Auth section.

Step 3: Paste the Credentials

Fill in the SMTP form with the values from Step 1:
  • Host: smtp.sequenzy.com
  • Port: 587
  • Minimum interval: 60 (seconds between emails - keep low for auth flows)
  • Username: api
  • Password: paste your Sequenzy API key
  • Sender email: an address on your verified sending domain
  • Sender name: your product name (shown in users’ inboxes)
Click Save.

Step 4: Send a Test Email

In the Supabase dashboard, trigger any auth email - the easiest test is Authentication → Users → Add user → Send invite. Use a real inbox you control. If the invite arrives within a few seconds, you’re done. If it doesn’t:
  • Check Sequenzy → Activity to see if the email was received and delivered
  • Verify the sender email matches a verified Sequenzy domain
  • Confirm the API key was pasted without surrounding whitespace
Supabase’s built-in template editor is fine for plain emails. For branded auth flows - product onboarding, magic links that match your design system, multi-language support - point Supabase’s templates at Sequenzy transactional emails instead. Sequenzy ships pre-built default templates for every Supabase auth flow. In the Connect Supabase modal, click Create default templates and you’ll get drafts for:
  • Confirm signup
  • Invite user
  • Magic link
  • Password reset
  • Email change
  • Password changed
  • Phone changed
  • Identity linked / unlinked
  • MFA enrolled / removed
Then in Supabase, replace each template body with a JSON payload referencing the matching Sequenzy slug. See the full Supabase integration docs for the JSON snippets and variable mapping.

Common Issues

Almost always one of:
  1. SMTP credentials are wrong - re-paste the password
  2. The Sender email doesn’t belong to a verified domain on your SMTP provider
  3. Your provider rejected the mail - check the provider’s activity log for the real error

Emails go to spam

  • Set up SPF, DKIM, and DMARC for your sending domain
  • Don’t send from noreply@ - use a real reply-to address
  • Warm up new domains gradually before sending high volume
See the Sequenzy domain verification guide and DMARC guide for step-by-step DNS setup.

Rate limits still hitting after switching

Supabase has its own per-hour rate limit on auth emails, separate from your SMTP provider. Bump it under Authentication → Rate Limits → Email sent.

FAQ

Does Supabase support custom SMTP on the free tier?

Yes. Custom SMTP is available on every Supabase plan, including free.

What port should I use for Supabase SMTP?

Use 587 with STARTTLS. Port 465 (SMTPS) also works with most providers but is less universally supported.

Can I use Gmail or my personal email account as SMTP?

Technically yes, practically no. Gmail’s SMTP is rate-limited to ~500 emails per day, blocks anything that looks like marketing or bulk auth flows, and breaks the moment you enable 2FA. Use a transactional email provider designed for app email - like Sequenzy.

Why are my Supabase auth emails slow?

Supabase calls SMTP synchronously inside the auth request. Slow SMTP = slow signups. Pick a provider with sub-second send times - Sequenzy averages under 300ms from API to inbox handoff.

Does this work for password reset emails too?

Yes - once custom SMTP is enabled, all Supabase auth emails (signup confirmation, magic links, invites, password reset, email change, MFA, security notifications) route through your SMTP provider.

Next Steps