Baalda

Outbound email

What switches on when you configure a transport, what happens when you do not, and which transports are accepted.


Email is optional. A server with no transport configured is fully usable, it simply does not send anything.

What email enables

With emailWithout email
Forgot password sends a reset linkPassword reset is not offered
Sign-up verification is sentAccounts are usable without verification
Invitations are mailed to each addressInvitations are shared as a link you send yourself, or people join by code

Configuring it

Set EMAIL_FROM plus exactly one transport.

  • SMTP_URL for any SMTP server, as smtp://user:pass@host:587 for STARTTLS or smtps://user:pass@host:465 for TLS.
  • RESEND_API_KEY for the HTTPS alternative, if outbound SMTP is blocked where you host.

EMAIL_TRANSPORT forces a choice rather than inferring it from the credentials present. Its log and memory values print or capture messages for development and are refused in production.

Set BETTER_AUTH_URL to the URL people actually use before you turn email on. It is what every link in those messages is built from.

This page is written from docs/DEPLOY.md in the repository. Those documents go further, and they are the ones that change first.

Read it on GitHub