Skip to main content

SMTP — Servei d'email

Aquest document parlava de PRODUCCIÓ i era FALS — corregit el 27/08/2026

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​

  1. Ves a Seguretat del compte Google
  2. Confirma que Verificació en 2 passos està activada
  3. Ves a App Passwords
  4. Crea una nova contrasenya d'aplicació:
    • Nom: Line Dance Platform (o el que vulguis)
  5. 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.

  1. Registra't a Mailtrap (pla gratuït disponible)
  2. Crea una inbox
  3. 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​

VariableDescripcióDefault
SPRING_MAIL_HOSTServidor SMTPsmtp.gmail.com
SPRING_MAIL_PORTPort SMTP587
SPRING_MAIL_USERNAMEEmail del remitent—
SPRING_MAIL_PASSWORDContrasenya / App Password—
APP_MAIL_ENABLEDActiva/desactiva l'enviamenttrue
APP_MAIL_FROMAdreça "From" dels emails= SPRING_MAIL_USERNAME
APP_VERIFICATION_BASE_URLURL base per links de verificacióhttp://localhost:5173/verify-email
APP_RESET_BASE_URLURL base per links de resethttp://localhost:5173/reset-password
APP_SUPPORT_EMAILEmail de suport als emailssupport@linedance-platform.local
APP_NAMENom de l'app als emailsLine Dance Platform

Verificació​

  1. Configura les variables SMTP
  2. Arrenca el backend
  3. Registra un nou usuari amb un email real
  4. Hauries de rebre un email de verificació
  5. Als logs del backend, busca MailService per 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