SMTP guides
Supabase Auth
Send Supabase confirmation and reset emails through usend with custom SMTP.
Supabase's built-in mailer is rate limited and meant for testing. Pointing Auth at usend sends confirmation, magic-link and password-reset emails from your own domain. Reference: Send with SMTP.
Before you start
- Verify your domain in usend.
- Create a
sending_accessAPI key for it. - Make sure your usend organization can send to your users: a sandbox organization can email only its verified members.
Configure Supabase
In the Supabase dashboard open Authentication, then the SMTP Settings (under Emails), and enable custom SMTP:
| Field | Value |
|---|---|
| Sender email | An address on your verified domain, for example [email protected] |
| Sender name | Your product name |
| Host | smtp.usend.et |
| Port number | 587 (or 465) |
| Minimum interval between emails | Raise if you need to; usend allows 10 messages per second per key |
| Username | usend |
| Password | Your usend API key |
Save, then trigger a sign-up or password reset to test it.
With the CLI
For a local or self-hosted stack, the same settings go in supabase/config.toml:
[auth.email.smtp]
enabled = true
host = "smtp.usend.et"
port = 587
user = "usend"
pass = "env(USEND_API_KEY)"
admin_email = "[email protected]"
sender_name = "Acme"Tips
- Edit the email templates in Supabase (Authentication → Emails) so they match your brand. Keep
{{ .ConfirmationURL }}intact. - Auth emails should be plain and fast. Avoid open and click tracking on them: a rewritten confirmation link looks suspicious to some filters. See Open and click tracking.
- If users report emails in spam, see Why emails go to spam.
- To send your own app mail from an Edge Function instead, see Supabase Edge Functions.