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. |
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.