SMTP — Servei d'email
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
Per defecte, LDP està configurat per Gmail SMTP, però funciona amb qualsevol proveïdor SMTP.
Opció A: Gmail (producció)
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