SMTP — Servei d'email
En producció NO fem servir Gmail. Fem servir Brevo (smtp-relay.brevo.com).
Verificat pel PM el 27/08/2026 llegint el servidor real:
fly ssh console -a ldp-backend-susisco -C "printenv SPRING_MAIL_HOST" → smtp-relay.brevo.com
Aquest document és del 31/03/2026 i deia «Per defecte, LDP està configurat per Gmail SMTP» i «Opció A: Gmail (producció)». Va quedar enrere quan es va migrar a Brevo, i ningú el va tornar a mirar: cinc mesos dient una cosa que ja no era certa, dins d'una guia que un xat podria seguir per «arreglar» la configuració i deixar els correus sense enviar-se.
Què val i què no d'aquest document:
- ✅ Gmail per a desenvolupament LOCAL: segueix sent vàlid, i per això no s'esborra.
- ❌ Gmail per a producció: fals. No ho facis.
Font de veritat del correu: .claude/knowledge/infraestructura/email-system.md
Què és i per a què serveix
El servei SMTP permet enviar emails des de LDP. S'utilitza per:
- Verificació d'email: Quan un usuari es registra, rep un email amb un codi de verificació
- Reset de contrasenya: Flux de recuperació de contrasenya amb token temporal
- Notificacions: Futures notificacions als usuaris
En LOCAL el valor per defecte és Gmail SMTP, i funciona amb qualsevol proveïdor. En PRODUCCIÓ és Brevo — vegeu l'avís de dalt.
Opció A: Gmail (NOMÉS desenvolupament local)
Prerequisits
- Compte Gmail
- Autenticació en 2 passos (2FA) activada al compte
Crear App Password
- Ves a Seguretat del compte Google
- Confirma que Verificació en 2 passos està activada
- Ves a App Passwords
- Crea una nova contrasenya d'aplicació:
- Nom:
Line Dance Platform(o el que vulguis)
- Nom:
- Copia la contrasenya generada (16 caràcters, sense espais)
Variables d'entorn
SPRING_MAIL_HOST=smtp.gmail.com
SPRING_MAIL_PORT=587
SPRING_MAIL_USERNAME=el-teu-email@gmail.com
SPRING_MAIL_PASSWORD=<app password de 16 caràcters>
APP_MAIL_ENABLED=true
APP_MAIL_FROM=el-teu-email@gmail.com
Opció B: Mailtrap (desenvolupament)
Per entorns de desenvolupament on no vols enviar emails reals, Mailtrap captura els emails en una safata virtual.
- Registra't a Mailtrap (pla gratuït disponible)
- Crea una inbox
- Ves a SMTP Settings i copia les credencials
SPRING_MAIL_HOST=sandbox.smtp.mailtrap.io
SPRING_MAIL_PORT=2525
SPRING_MAIL_USERNAME=<el teu username de Mailtrap>
SPRING_MAIL_PASSWORD=<el teu password de Mailtrap>
APP_MAIL_ENABLED=true
Opció C: Desactivar email
Si no necessites email (ex: desenvolupament local sense verificació):
APP_MAIL_ENABLED=false
Amb email desactivat:
- El registre funciona però no envia verificació
- El reset de contrasenya no funciona
- Els logs mostren els emails que s'haurien enviat
Variables completes
| Variable | Descripció | Default |
|---|---|---|
SPRING_MAIL_HOST | Servidor SMTP | smtp.gmail.com |
SPRING_MAIL_PORT | Port SMTP | 587 |
SPRING_MAIL_USERNAME | Email del remitent | — |
SPRING_MAIL_PASSWORD | Contrasenya / App Password | — |
APP_MAIL_ENABLED | Activa/desactiva l'enviament | true |
APP_MAIL_FROM | Adreça "From" dels emails | = SPRING_MAIL_USERNAME |
APP_VERIFICATION_BASE_URL | URL base per links de verificació | http://localhost:5173/verify-email |
APP_RESET_BASE_URL | URL base per links de reset | http://localhost:5173/reset-password |
APP_SUPPORT_EMAIL | Email de suport als emails | support@linedance-platform.local |
APP_NAME | Nom de l'app als emails | Line Dance Platform |
Verificació
- Configura les variables SMTP
- Arrenca el backend
- Registra un nou usuari amb un email real
- Hauries de rebre un email de verificació
- Als logs del backend, busca
MailServiceper confirmar l'enviament
Resolució de problemes
Error "Authentication failed"
- Per Gmail: assegura't d'usar una App Password, no la contrasenya normal
- La 2FA ha d'estar activada al compte Google
Error "Connection refused" / timeout
- Verifica que el host i port són correctes
- Algunes xarxes corporatives bloquegen el port 587
Els emails no arriben
- Revisa la carpeta de spam
- Per Gmail: verifica que el compte no té restriccions de seguretat
- Amb Mailtrap: els emails es capturen a la inbox virtual, no s'envien realment