FromlyDocumentation
Get started

SMTP

For tools that can only send email over SMTP: Supabase Auth, a CMS, a framework's mailer. Each email is a transactional email like one sent with the API: it uses one credit, appears on the Transactional page and is tracked the same way.

Settings

FieldValue
Hostsmtp.fromly.io
Port465 with SSL/TLS, or 587 with STARTTLS
Usernamefromly
PasswordAn SMTP password from Settings, SMTP

Create the password in Settings, SMTP. It is an API key that can send transactional email and nothing else, shown once. Any key with the Transactional only level works too.

The sender can be any address on one of your verified domains, such as no-reply@notify.domain.com. The display name you set in your tool is kept.

Supabase Auth

In your Supabase project, open Authentication, then Emails, then SMTP Settings, and turn on custom SMTP:

Supabase fieldValue
Sender emailAn address on a verified domain
Sender nameYour product name
Hostsmtp.fromly.io
Port number465
Usernamefromly
PasswordYour SMTP password

Sign-in links, confirmations and password resets then leave from your domain. Supabase keeps writing their content: edit it in its email templates.

Limits

Each password can send 120 emails a minute, the same budget the API gives the key. A message can have up to 50 recipients and weigh up to 10 MB.

Attachments are not supported yet. A message with one is refused rather than sent without it.

Replies

A 4xx reply is temporary: your tool tries again on its own, and a recipient who already received the message is not sent it twice, as long as the message keeps its Message-ID. A 5xx reply is final.

ReplyMeaning
535The password is wrong, revoked, or cannot send transactional email.
550Refused: the sender is not on a verified domain, or the recipient has bounced or marked an email as spam.
451Too many emails at once, or sending is paused for a while. Retried by your tool.
452The account has no emails left. Sending resumes once credits are added.
552The message is too large.
554The message has an attachment, or could not be sent.

To send from your own code, the transactional API gives you templates, variables and each email's status in the response.