Skip to content
couryo

SMTP for Supabase

The confirmation email never arrived. The user gave up.

The email service built into Supabase Auth is made for testing: a very low hourly limit and, by default, only your own team receives it. Switch to a production SMTP in the Supabase dashboard, without changing a line of code.

Create a free account and get the key

3,000 emails a month free. No card to start.

Why the Auth email does not arrive

Numbers from the Supabase Auth documentation (custom SMTP and rate limits pages), checked on October 20, 2026. They can change.

The fields to paste

In the Supabase dashboard: Authentication > Emails > SMTP Settings, turn on Enable Custom SMTP and fill in:

FieldValue
Host
smtp.couryo.com
Port number
587

STARTTLS. Or 465 (TLS) or 2525 (STARTTLS, when 587 is blocked).

Username
couryo

Always this word, for every account.

Password
ck_live_...

A Couryo API key with the send scope. A ck_test_ key captures the email in the panel and delivers nothing.

Sender email
no-reply@auth.yourapp.com

An address on a domain verified in Couryo.

Sender name
Your app

The name people see in the inbox.

Save, then open Authentication > Rate Limits and raise the emails per hour. When custom SMTP is saved, Supabase starts it at 30 per hour; this is the step most people forget.

Three steps, no code change

  1. 1

    Verify the sending domain

    In Couryo, under Domains, add the domain (an auth subdomain such as auth.yourapp.com keeps sign-in apart from marketing). Each DNS record shows its status live, with Cloudflare in one click.

  2. 2

    Create the SMTP key

    In the panel, Keys > Connect to Supabase creates a key with the send scope only and shows every field with a copy button. The full key is shown once.

  3. 3

    Paste, save and test

    Paste the fields in Supabase, raise the rate limit and sign up a test user. The email shows up in Couryo's timeline: accepted, sent, delivered, with the receiving server's answer in plain words.

Full guide: Supabase Auth with custom SMTP

What it costs

Auth emails are transactional: they go out on any plan, including Free.

Every plan and the calculator

Frequently asked questions

What is the Supabase Auth email limit?
With the built-in service, 2 emails per hour for the whole project, and only to members of your organization. With custom SMTP, it starts at 30 per hour and you change it under Authentication > Rate Limits. There is also a 60-second window per user between requests (Supabase docs, checked on October 20, 2026).
Which SMTP settings do I use in Supabase?
Host smtp.couryo.com, port 587 (STARTTLS), 465 (TLS) or 2525, username couryo, password = a Couryo API key with the send scope, and a sender email on a domain verified in Couryo.
I turned on custom SMTP and still get email rate limit exceeded. Why?
Almost always because the emails per hour stayed at the starting value. Raise it under Authentication > Rate Limits. If it only happens when the same person asks twice in a row, it is the 60-second window per user, which is on purpose.
Can I test the sign-up flow without sending real email?
Yes. Use a ck_test_ key as the SMTP password: Couryo captures the confirmation email and shows it in the panel with the link, and delivers nothing.
How much does it cost?
The Free plan has 3,000 emails a month, up to 100 a day, and is free forever. Pro is $19 a month for 50,000 emails.
Does a new Couryo account send right away?
A new account starts in a sandbox that only sends to the account's own addresses. With the domain verified, it moves up by itself to a level that sends to anyone; the limits of each level are on the Limits and levels page of the docs.

Make the next sign-up email arrive

Create a free account and get the key

3,000 emails a month free. No card to start.