Saltar a contenido

Correo y avisos#

Todo el correo de Empowerment Center sale por un único servidor SMTP de la organización: las suscripciones, las alertas de datos, los avisos de la consola de operación, los de la planificación y el aviso a quien tiene una credencial de servicio que va a caducar. Esta página explica cómo se configura ese servidor y cada tipo de aviso. Qué correos envía ECenter y cómo se diagnostica un envío que no llega está en Operación.

El servidor de correo#

La configuración va en las variables de entorno del backend (en deploy/.env con Docker Compose) y se aplica al volver a crearlo (docker compose -f deploy/compose.yaml up -d backend).

Variable Propiedad Qué es
SPRING_MAIL_HOST spring.mail.host El servidor. Sin él no se envía ningún correo.
SPRING_MAIL_PORT spring.mail.port El puerto: normalmente 587 con STARTTLS, 465 con TLS directo o 25 en un relé interno.
SPRING_MAIL_USERNAME spring.mail.username El usuario, si el servidor pide autenticación.
SPRING_MAIL_PASSWORD spring.mail.password Su contraseña.
SPRING_MAIL_PROTOCOL spring.mail.protocol smtp (por defecto) o smtps (TLS desde el principio, normalmente en el 465).
SPRING_MAIL_PROPERTIES_MAIL_SMTP_AUTH spring.mail.properties.mail.smtp.auth true si el servidor pide autenticación. Con smtps, SPRING_MAIL_PROPERTIES_MAIL_SMTPS_AUTH.
SPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_ENABLE spring.mail.properties.mail.smtp.starttls.enable true para cifrar con STARTTLS.
ECENTER_MAIL_FROM ecenter.notifications.from El remitente de lo que no dice el suyo (ecenter@example.org). Vacío, el que ponga el servidor.
SPRING_MAIL_HOST=smtp.example.org
SPRING_MAIL_PORT=587
SPRING_MAIL_USERNAME=ecenter@example.org
SPRING_MAIL_PASSWORD=cambie-esta-clave
SPRING_MAIL_PROPERTIES_MAIL_SMTP_AUTH=true
SPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_ENABLE=true
ECENTER_MAIL_FROM=ecenter@example.org
SPRING_MAIL_HOST=smtp.example.org
SPRING_MAIL_PORT=465
SPRING_MAIL_PROTOCOL=smtps
SPRING_MAIL_USERNAME=ecenter@example.org
SPRING_MAIL_PASSWORD=cambie-esta-clave
SPRING_MAIL_PROPERTIES_MAIL_SMTPS_AUTH=true
ECENTER_MAIL_FROM=ecenter@example.org
SPRING_MAIL_HOST=relay.example.org
SPRING_MAIL_PORT=25
ECENTER_MAIL_FROM=ecenter@example.org

Importante

Si no va a usar correo, quite o comente SPRING_MAIL_HOST: no la deje vacía. Una variable vacía cuenta como definida.

Sin servidor de correo, todo lo demás funciona: Enviarme una prueba aparece desactivado («Esta instalación no tiene servidor de correo») y Administración › Operación › Políticas dice, en Avisos por correo, Servidor de correo: Sin configurar (spring.mail.host). Con él, dice Configurado.

Cada correo lleva la cabecera Auto-Submitted: auto-generated, para que los servidores no respondan con avisos de ausencia.

Tiempos de espera#

Sin tiempos de espera, un servidor que acepta la conexión y no responde dejaría colgadas las entregas. ECenter trae estos, en milisegundos:

Propiedad Por defecto Qué es
spring.mail.properties.mail.smtp.connectiontimeout 10000 Abrir la conexión.
spring.mail.properties.mail.smtp.timeout 60000 Cada lectura.
spring.mail.properties.mail.smtp.writetimeout 60000 Cada escritura (un adjunto grande se escribe en varias).

Con SPRING_MAIL_PROTOCOL=smtps valen los mismos con smtps en lugar de smtp, que también vienen puestos. Se cambian uno a uno, sin perder los demás:

SPRING_MAIL_PROPERTIES_MAIL_SMTP_CONNECTIONTIMEOUT=5000
SPRING_MAIL_PROPERTIES_MAIL_SMTP_TIMEOUT=30000
SPRING_MAIL_PROPERTIES_MAIL_SMTP_WRITETIMEOUT=120000

Con smtps, escriba SMTPS en lugar de SMTP en el nombre de la variable.

La comprobación del servidor#

Mientras haya suscripciones o alertas de datos activas, cada ronda de alertas de la consola de operación (cada minuto) comprueba que el servidor de correo responde en 10 s (ecenter.operations.alerts.mail-timeout): se conecta, se identifica y cierra, sin enviar nada. Si no responde, abre la alerta crítica Sin servidor de correo, que se resuelve sola cuando vuelve a responder.

Los avisos de la consola de operación#

La consola de operación puede avisar por correo cuando se abre o se resuelve una alerta operativa (la licencia, la memoria, el disco, una BD de cliente inaccesible, trabajos que fallan…).

Propiedad Por defecto Qué es
ecenter.operations.notifications.mode NONE Qué se avisa: NONE, nada; CRITICAL, las alertas críticas, al abrirse y al resolverse; ALL, todas, y además cada arranque del backend.
ecenter.operations.notifications.recipients (ninguno) A quién. Sin destinatarios no se avisa, aunque haya modo.
ecenter.operations.notifications.from (el general) El remitente de estos avisos.
ecenter:
  operations:
    notifications:
      mode: CRITICAL
      recipients: [sistemas@example.org, guardia@example.org]

Qué alertas hay y cuándo saltan está en Operación.

Los avisos de la planificación#

El planificador puede avisar del resultado de cada ejecución de una tarea programada.

Propiedad Por defecto Qué es
ecenter.scheduling.notifications.mode NONE NONE, nada; ALL, cada ejecución; FAILURES, solo las que fallan o se saltan (una ejecución detenida a mano no es un fallo).
ecenter.scheduling.notifications.recipients (ninguno) A quién.
ecenter.scheduling.notifications.from (el general) El remitente.

Véase Planificación.

Suscripciones y alertas de datos#

Las suscripciones envían documentos calculados como cada destinatario; las alertas de datos avisan cuando una cifra cumple una regla. Comparten esta configuración:

Propiedad Por defecto Qué es Cuándo cambiarla
ecenter.distribution.enabled true Lanzar solas las programadas. Con false, solo los eventos de recálculo y publicación las disparan. Para pararlas en una instalación de pruebas.
ecenter.distribution.tick 15s Cada cuánto se miran las programadas. No suele hacer falta.
ecenter.distribution.zone La del servidor (TZ) La zona de las programaciones y de las fechas del correo. Si no puede cambiar TZ. Conviene que coincida con ecenter.scheduling.zone.
ecenter.distribution.base-url ECENTER_PUBLIC_URL La dirección para los enlaces de los correos. Sin ella, no hay enlaces ni formato «enlace». Nunca, si ECENTER_PUBLIC_URL está bien.
ecenter.distribution.attachments true Con false, solo enlaces: nunca salen datos por correo. Si la política de la organización no admite datos en el correo.
ecenter.distribution.allowed-domains (todos) Los dominios de correo que pueden recibir (example.org). Para que no salgan datos a direcciones externas.
ecenter.distribution.max-recipients 100 Destinatarios (usuarios y roles) de una suscripción.
ecenter.distribution.max-per-owner 50 Suscripciones por responsable.
ecenter.distribution.max-attachment 10MB Por encima se envía el enlace en lugar del adjunto. Según lo que admita el servidor de correo.
ecenter.distribution.max-groups 20 Grupos de cálculo (combinaciones distintas de privilegios entre los destinatarios) de un envío. Más hacen fallar el envío, para no multiplicar la carga de la BD del cliente.
ecenter.distribution.failures-to-pause 3 Envíos fallidos seguidos tras los que una suscripción se pausa sola y avisa a su responsable.
ecenter.distribution.history 90d Lo que se conservan los envíos en el historial.
ecenter.distribution.mail-retries 5s, 30s Las esperas antes de cada reintento de un correo que falla de forma transitoria. Si un envío agota los reintentos, sus demás correos se intentan una vez.
ecenter.distribution.instance-name ECENTER_INSTANCE_NAME El nombre de la instancia en los envíos.
ecenter.distribution.alerts.enabled true Evaluar las alertas de datos. Con false, no se evalúa ninguna.
ecenter.distribution.alerts.max-per-owner 50 Alertas por dueño.
ecenter.distribution.alerts.max-values 5 Valores vigilados por alerta (de 1 a 26).
ecenter.distribution.alerts.max-rules 10 Reglas por alerta.
ecenter.distribution.alerts.max-instances 100 Instancias por destinatario en una alerta «por cada valor de» una dimensión.
ecenter.distribution.alerts.max-pending 10 El máximo de las esperas para dispararse y para resolverse (de 1 a 100).
ecenter.distribution.alerts.errors-to-pause 3 Evaluaciones seguidas que fallan por un error del sistema antes de que la alerta se pause sola y avise a su dueño.

Las entregas son trabajos de la clase DELIVERY (2 a la vez por defecto; véase Recursos). La consola de operación avisa si fallan 3 envíos o evaluaciones en una hora (ecenter.operations.alerts.delivery-failures y delivery-failures-window).

Los avisos de las credenciales de servicio#

El titular de una credencial personal (de la API de consulta o del MCP) recibe un correo 14 días antes de que caduque (ecenter.security.credentials.expiry-notice), si tiene correo. Las de SCIM, de incrustación y de intercambio del metadata no avisan a su titular: las vigila la alerta operativa Credencial de servicio a punto de caducar, que se abre 30 días antes (ecenter.operations.alerts.credential-expiry) y sale por correo con los avisos de la consola. Véase Integraciones.

El correo de los usuarios#

Los usuarios reciben el correo en la dirección de su ficha, en Administración › Usuarios y roles. Es opcional y no se puede repetir entre usuarios. Un usuario sin dirección no recibe suscripciones ni avisos. Con el inicio de sesión único, el proveedor de identidad puede rellenarla.

Véase también#