What changes when you turn it on
Configuring a provider also switches on account activation. From that point, everyone you invite has to click a link in their mail before they can sign in. Until then, new accounts are active immediately and no mail is sent at all. That makes the half-configured state the worst one to be in: accounts get created inactive, and the mail that would let them in never arrives. Set the provider and its credentials, or set neither.Pick a provider
1
Choose one and name it
EMAIL_PROVIDER has to be exactly resend or nodemailer. Any other value, including
leaving it unset, selects a provider that quietly sends nothing.2
Set who the mail comes from
Both providers need these:
3
Add the credentials
- Resend
- SMTP (Nodemailer)
Register at Resend and verify the domain you want to send from.
Copy the API key from their dashboard.The address in
EMAIL_FROM_ADDRESS has to be on a domain you verified with Resend, or
they reject the send.4
Apply and test
The examples above use
KEY=value, which is the syntax for an env file. If you are editing
docker-compose.yaml directly, the same settings are written KEY: 'value' with a colon.
Docker Compose covers both.If mail does not arrive
Nothing is sent and nothing is logged
Nothing is sent and nothing is logged
EMAIL_PROVIDER is not exactly resend or nodemailer. A typo, a capital letter or an
unset value all land on the provider that does nothing, and it does not complain.Resend rejects the send
Resend rejects the send
EMAIL_FROM_ADDRESS has to be on a domain verified in your Resend account. An unverified
domain, or a generic one you do not own, is refused.SMTP times out
SMTP times out
Many hosting providers block outbound port 25, and some block 465 and 587 by default until
you ask. Test from the server itself with
nc -zv smtp.example.com 465.New accounts are stuck as inactive
New accounts are stuck as inactive
That is activation working while mail is not. Fix the provider, then have the person request
a new activation mail. Activation links are short lived, so an old one will not help.
Related
Passwordless sign-in
One-time codes by mail instead of passwords, which needs a working provider
Configuration reference
Every mail variable and what it does