Skip to content
BaaS & Auth Integration

Supabase Custom SMTP & Transactional Email

By default, Supabase Cloud projects restrict built-in auth emails to 2 per hour, causing 429 Too Many Requests errors during launch spikes. SadaSend provides instant, high-deliverability custom SMTP credentials and a type-safe REST API for Supabase Edge Functions, featuring pre-flight validation and 6,000 free emails a month.

The Problem: Default Supabase Limits

429: Too Many Requests (2 Emails / Hour)

Supabase Cloud shares an internal SMTP relay across all free tier projects. It caps transactional sends to just 2 emails per hour.

{"code": 429, "message": "Email rate limit exceeded"}
  • New users fail to receive magic links during launch traffic spikes.
  • Password resets and email confirmations fail silently.
The Solution: SadaSend Custom SMTP

Unthrottled Delivery & Instant Verification

Connecting SadaSend custom SMTP completely bypasses the Supabase 429 ceiling. Deliver magic links and OTPs instantly via verified domain pools.

{"status": 200, "message": "Dispatched in 18ms", "dlq": false}
  • 3,000 free transactional emails with lifetime retention (never expire).
  • Sub-20ms delivery speed with real-time logs and webhook tracking.
Step-by-Step Configuration

Configure Supabase SMTP in 3 Minutes

In your Supabase project dashboard, navigate to Project Settings → Authentication → SMTP Settings and toggle Enable Custom SMTP.

Open Supabase Dashboard
Supabase Setting FieldRecommended ValueDescriptionAction
Enable Custom SMTPToggle ONActivates external transactional email routing in your Supabase Auth dashboard.—
Sender Emailauth@yourdomain.comThe verified from address associated with your SadaSend domain.
Sender NameYour App NameHuman-readable sender name displayed in user inboxes.—
SMTP Hostsmtp.sadasend.comSadaSend global Anycast SMTP relay gateway.
SMTP Port587Standard submission port using explicit STARTTLS encryption (RFC 3207).
SMTP UsersadasendStandard authentication username for all SadaSend SMTP connections.
SMTP Passwordyour_sadasend_api_keyYour production or test API key generated in the SadaSend dashboard.—
Developer Implementation

Supabase Ecosystem Code Recipes

Whether routing via Supabase Auth, dispatching from Deno Edge Functions, or running local Docker containers, SadaSend connects natively.

supabase/functions/send-email/index.tsSub-20ms Native Fetch
TYPESCRIPT
// Supabase Edge Function: supabase/functions/send-email/index.ts
// Direct native fetch dispatch to SadaSend REST API (low latency)
import { serve } from 'https://deno.land/std@0.168.0/http/server.ts';

serve(async (req) => {
  if (req.method !== 'POST') {
    return new Response('Method Not Allowed', { status: 405 });
  }

  const { to, subject, html } = await req.json();

  const response = await fetch('https://api.sadasend.com/v1/emails', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${Deno.env.get('SADASEND_API_KEY')}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      from: 'alerts@yourdomain.com',
      to,
      subject,
      html,
    }),
  });

  const result = await response.json();
  return new Response(JSON.stringify(result), {
    headers: { 'Content-Type': 'application/json' },
    status: response.status,
  });
});
Built for Modern BaaS Stacks

Why Supabase Builders Choose SadaSend

Beyond fixing SMTP rate limits, SadaSend gives your backend production-grade observability and agent guardrails.

Per-Key Recipient Allowlists

Scope your local development and staging API keys to only send to @company.com. Prevent local database seeds from ever leaking test auth links to production users.

Database Webhook Ingestion

Trigger transactional emails directly from Supabase Postgres Database Webhooks or Database Triggers (e.g., when a new row is inserted into users or invoices).

Native AI Agent MCP Server

Building AI agents on Supabase? Give your Claude Desktop, Cursor, or Windsurf agents native email tools with hardware spending ceilings and dry-run preview verification.

Frequently Asked Questions

Supabase Custom SMTP Questions

Everything you need to know about eliminating auth rate limits and configuring custom domains.

Why does Supabase return error 429: "Email rate limit exceeded"?

By default, Supabase Cloud projects share an internal built-in email service with a restrictive quota of 2 emails per hour on the Free tier and approximately 30 emails per hour on Pro. When multiple users sign up or request magic links within a short window, Supabase throws an HTTP 429 error. Connecting SadaSend custom SMTP immediately removes this restriction, allowing unthrottled transactional delivery.

How long does it take to connect SadaSend custom SMTP to Supabase?

Under 3 minutes. In your Supabase Dashboard, navigate to Project Settings -> Authentication -> SMTP Settings, toggle Enable Custom SMTP to ON, and enter host smtp.sadasend.com on port 587 with your SadaSend API key as the password.

Can I use SadaSend with Supabase Edge Functions?

Yes. In addition to standard Supabase Auth SMTP, you can dispatch transactional emails directly from Deno-based Supabase Edge Functions using native fetch to https://api.sadasend.com/v1/emails. This enables programmatic notifications for Stripe webhooks, database triggers, and AI agent events.

Does SadaSend protect local Supabase Docker development from leaking emails?

Yes. With SadaSend’s per-key recipient allowlists, you can issue an API key dedicated to local development (in supabase/config.toml) that is strictly constrained to only send to your team’s domain (e.g. *@yourcompany.com). Any test emails addressed to real customer addresses are safely rejected at the gateway.

How much does it cost to use SadaSend with Supabase?

SadaSend offers 6,000 free transactional emails with no expiration date and no credit card required. When your Supabase application scales, paid plans start at $12/month for 15,000 emails, $19/month for 75,000 emails, and $79/month for 250,000 emails with clean, verified IP pools included.

3,000 Free Emails · Never Expire · Zero Sandbox Hold

Fix Supabase 429 Errors in 3 Minutes

Create your SadaSend account with GitHub or Google, generate your SMTP credentials, and never drop another auth magic link or OTP.