fix: skip email verification entirely when no mail transport exists

SMTP-less self-hosted instances still marked every account
emailVerified=false and attempted a verification mail that could
never arrive. Now: no transport → accounts are created verified,
the send is skipped, and existing unverified rows are backfilled
on startup. .env.example stops defaulting SMTP_HOST to the
dev-only mailpit service.

Verified live: fresh signup returns emailVerified=true, legacy
unverified users flip on restart, sign-in unaffected.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
Tomas DvorakandDevin committed 2026-09-28 15:43:26 +02:00
1 parent 14d0762245
commit 7548ea75d4
5 files changed
+50 -15

No files matched your search

+5 -1
View File
@@ -77,9 +77,13 @@ BACKEND_STORAGE_DRIVER=local
# Mail defaults — each is overridable in-app (Settings → Instance). In-app
# values win over these env vars; deleting the in-app value reverts here.
# With no transport configured (no Resend key and no SMTP_HOST) accounts are
# verified automatically and no verification mail is attempted.
# The dev overlay (docker compose -f docker-compose.yml -f docker-compose.dev.yml)
# runs Mailpit — then SMTP_HOST=mailpit catches all outgoing mail at :8025.
RESEND_API_KEY=
MAIL_FROM=Primora <[email protected]>
SMTP_HOST=mailpit
SMTP_HOST=
SMTP_PORT=1025
SMTP_USER=
SMTP_PASSWORD=