Email over SMTP
sol2flow sends email for invitations, password resets, email confirmations, sign-up approvals, security notices (for example "a passkey was added"), and notification digests. Every message has an HTML and a plain-text part and is written in the recipient's language.
Require email verification is on by default: new accounts, and people who change their email address, confirm the address with an emailed link. If your instance can't send email, turn it off in Admin → Authentication, or nobody can finish signing up. See Email verification.
Set up SMTP
-
Get SMTP credentials from your mail provider (or your own mail server). A dedicated sender address such as
[email protected]works best. -
Add to
.env:MAIL_DRIVER=smtpSMTP_HOST=smtp.example.comSMTP_PORT=587SMTP_PASSWORD=…SMTP_SECURE=false -
Apply it:
docker compose up -d. -
Test it: on the sign-in page, choose Forgot password? for your own account and check that the email arrives.
| Port | SMTP_SECURE | Encryption |
|---|---|---|
| 587 | false | STARTTLS (upgraded after connecting) — the usual choice |
| 465 | true | TLS from the first byte |
| 25 | false | server-to-server; often blocked by hosting providers |
Deliverability
- Send from a domain you control, and publish SPF, DKIM and DMARC records for it as your mail provider describes. Without them, invitations tend to land in spam.
MAIL_FROMmust be an address your SMTP account may send as.- Links in emails use
APP_URL, so make sure it is the public HTTPS address.
Delivery and retries
Emails are queued and sent in the background, with retries when the SMTP server is unavailable. Nothing a user does waits for the mail server, and a failed email never undoes the change that triggered it. Failures are logged (see Troubleshooting).
Without SMTP
With MAIL_DRIVER=log (the default) messages are not sent: their subject and text, including links, are written to the
app log (docker compose logs app). That's fine for a first test, but people can't receive invitations or reset their
password.
Notification emails
Besides the emails that are always sent (invitations, password resets, security notices), people get digest emails about changes to their tasks. The instance-wide switch and schedule are in Admin → General; each person can opt out in their own settings. See Notifications.