> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sequenzy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Supabase Custom SMTP Setup Guide

> Configure custom SMTP in Supabase Auth to send invites, magic links, password resets, and confirmation emails reliably from your own domain - in under 5 minutes.

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](https://www.sequenzy.com) 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](https://www.sequenzy.com) 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:

| Setting  | Value                 |
| -------- | --------------------- |
| Host     | `smtp.sequenzy.com`   |
| Port     | `587`                 |
| Username | `api`                 |
| Password | Your 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](https://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**

<Note>
  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.
</Note>

## 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

## Step 5 (Recommended): Use Sequenzy Templates Instead of Supabase's

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](/integrations/supabase) for the JSON snippets and variable mapping.

## Common Issues

### "Error sending magic link email" / "Error sending confirmation email"

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](/guides/domain-verification) and [DMARC guide](/guides/dmarc) 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](https://www.sequenzy.com).

### 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

* [Connect Supabase to Sequenzy](/integrations/supabase) for full auth email + user sync
* [Verify your sending domain](/guides/domain-verification) for the best deliverability
* [Set up DMARC](/guides/dmarc) to prevent spoofing of your auth emails
