Correo electrónico y notificaciones push
Antimatter envía correos electrónicos para invitaciones, restablecimientos de contraseña, verificación y mensajes perdidos, y notificaciones push a la aplicación móvil a través de un proxy de push. Ninguno funciona hasta que lo configures.
Correo saliente (SMTP)
Antimatter envía correos electrónicos a través de un servidor SMTP que tú proporciones: el servidor de correo de tu organización o un servicio de correo transaccional. Sin él, las personas no pueden restablecer una contraseña olvidada, las invitaciones y verificaciones por correo no llegan, y nadie recibe notificaciones por correo de los mensajes perdidos.
Configúralo en Consola de sistema › Entorno › SMTP, o con variables:
| Ajuste | Clave y variable | Predeterminado |
|---|---|---|
| Servidor SMTP | EmailSettings.SMTPServer, AM_EMAILSETTINGS_SMTPSERVER | localhost |
| Puerto del Servidor SMTP | EmailSettings.SMTPPort, AM_EMAILSETTINGS_SMTPPORT | 10025 |
| Habilitar Autenticación SMTP | EmailSettings.EnableSMTPAuth, AM_EMAILSETTINGS_ENABLESMTPAUTH | desactivado sin seguridad de conexión, activado con ella |
| Nombre de usuario del Servidor SMTP | EmailSettings.SMTPUsername, AM_EMAILSETTINGS_SMTPUSERNAME | vacío |
| Contraseña del Servidor SMTP | EmailSettings.SMTPPassword, AM_EMAILSETTINGS_SMTPPASSWORD | vacío |
| Seguridad de Conexión | EmailSettings.ConnectionSecurity, AM_EMAILSETTINGS_CONNECTIONSECURITY | Ninguna (vacío); o TLS o STARTTLS |
| Omitir la Verificación del Certificado del Servidor | EmailSettings.SkipServerCertificateVerification | desactivado. Déjalo desactivado en producción. |
Usa STARTTLS en el puerto 587 o TLS en el puerto 465, según indique tu proveedor. Luego haz clic en Probar conexión en la misma página: Antimatter enviará un correo de prueba a tu propia dirección.
Una configuración típica con Docker Compose, en compose.override.yaml junto a compose.yaml:
services:
antimatter:
environment:
AM_EMAILSETTINGS_SMTPSERVER: smtp.example.com
AM_EMAILSETTINGS_SMTPPORT: "587"
AM_EMAILSETTINGS_CONNECTIONSECURITY: STARTTLS
AM_EMAILSETTINGS_ENABLESMTPAUTH: "true"
AM_EMAILSETTINGS_SMTPUSERNAME: chat@example.com
AM_EMAILSETTINGS_SMTPPASSWORD: ${SMTP_PASSWORD}
AM_EMAILSETTINGS_FEEDBACKNAME: Antimatter
AM_EMAILSETTINGS_FEEDBACKEMAIL: chat@example.com
AM_EMAILSETTINGS_REPLYTOADDRESS: chat@example.com
Coloca SMTP_PASSWORD en .env. El archivo compose del sitio coloca el servidor en la red predeterminada, que tiene acceso a Internet, por lo que puede alcanzar un servidor SMTP externo.
Configuración de correo del remitente y de notificaciones
En Consola de sistema › Configuración del Sitio › Notificaciones:
| Ajuste | Clave | Predeterminado |
|---|---|---|
| Habilitar Notificaciones por Correo Electrónico | EmailSettings.SendEmailNotifications | activado |
| Nombre a mostrar en las Notificaciones | EmailSettings.FeedbackName | vacío |
| Dirección para Notificación de correo electrónico | EmailSettings.FeedbackEmail | test@example.com: cámbiala |
| Dirección de Responder-a para las Notificaciones | EmailSettings.ReplyToAddress | test@example.com: cámbiala |
| Dirección de correo electrónico de asistencia | SupportSettings.SupportEmail | vacío |
| Dirección del correo electrónico del pie de página | EmailSettings.FeedbackOrganization | vacío |
| Contenido de las Notificaciones por correo electrónico | EmailSettings.EmailNotificationContentsType | Enviar el contenido completo del mensaje (full), o una descripción genérica con solo el nombre del remitente (generic) |
| Habilitar procesamiento por lotes de correos electrónicos | EmailSettings.EnableEmailBatching | desactivado. Si se activa, las personas pueden elegir recibir los mensajes perdidos agrupados en un solo correo cada 15 minutos o cada hora, en lugar de un correo por cada uno. |
| Usar nombre del canal en las notificaciones por correo electrónico | EmailSettings.UseChannelInEmailNotifications | desactivado |
| Habilitar Anuncio de Modo de Prueba | EmailSettings.EnablePreviewModeBanner | activado: mientras las notificaciones por correo están desactivadas, un anuncio informa a los administradores de que el correo no está configurado |
La dirección de remitente debe ser una que tu servidor SMTP tenga permiso para usar; configura SPF y DKIM para su dominio, o los correos electrónicos podrían terminar en las carpetas de correo no deseado.
Los ajustes de inicio de sesión relacionados con el correo electrónico (si las nuevas cuentas deben verificar su dirección, si se pueden enviar invitaciones por correo electrónico) se encuentran en Inicio de sesión y cuentas.
Notificaciones push a la app móvil
Cómo funciona el envío de notificaciones push
Antimatter nunca se comunica directamente con Apple o Google. Para cada notificación, llama a un proxy de push, que almacena las credenciales de la aplicación móvil y reenvía la notificación a Apple (APNs) para iPhones y a Google (Firebase Cloud Messaging) para teléfonos Android. Apple y Google solo entregan una notificación cuando se envía con las credenciales de la aplicación para la que está destinada. Por lo tanto, un proxy de push funciona con una sola compilación de la aplicación móvil: la que posee sus credenciales.
- Antimatter no ejecuta un proxy de push público. Tú ejecutas el proxy de push de Antimatter, con las credenciales de la compilación de la aplicación móvil que instalan tus usuarios.
- Antimatter nunca envía notificaciones a los servicios de push de Mattermost, ya sean de prueba o alojados: estos solo entregan a las propias aplicaciones móviles de Mattermost. Si el servidor se configura con una de sus direcciones (como
https://push-test.mattermost.com, que usan las configuraciones antiguas de Mattermost), no envía nada y registra una advertencia al inicio.
Un servidor nuevo no tiene un servidor de notificaciones push, por lo que no envía notificaciones push hasta que configures la dirección de tu proxy de push. Hasta entonces, la aplicación móvil funciona, pero no recibe notificaciones.
Ejecutar el proxy de push
El proxy de push se encuentra en el repositorio push-proxy. Su README explica cómo obtener las dos credenciales, que provienen de las cuentas que publican tu compilación de la aplicación móvil:
- Android: un archivo de cuenta de servicio del proyecto de Firebase que usa tu compilación de Android.
- iOS: una clave de autenticación de APNs (
AuthKey_<KEY ID>.p8) de la cuenta de desarrollador de Apple que publica tu compilación de iOS, junto con su ID de clave y ID de equipo.
Colócalos junto a compose.yaml, junto con el archivo de configuración del proxy:
push-proxy/
config/antimatter-push-proxy.json
certs/AuthKey_ABCDE12345.p8
certs/firebase-service-account.json
push-proxy/config/antimatter-push-proxy.json, con tu identificador de paquete, ID de clave e ID de equipo:
{
"ListenAddress": ":8066",
"ThrottlePerSec": 300,
"ThrottleMemoryStoreSize": 50000,
"ThrottleVaryByHeader": "X-Forwarded-For",
"EnableMetrics": false,
"SendTimeoutSec": 30,
"RetryTimeoutSec": 8,
"ApplePushSettings": [
{
"Type": "apple_rn",
"ApplePushUseDevelopment": false,
"ApplePushTopic": "chat.antimatter.app",
"AppleAuthKeyFile": "./certs/AuthKey_ABCDE12345.p8",
"AppleAuthKeyID": "ABCDE12345",
"AppleTeamID": "FGHIJ67890"
}
],
"AndroidPushSettings": [
{
"Type": "android_rn",
"ServiceFileLocation": "./certs/firebase-service-account.json"
}
],
"EnableConsoleLog": true,
"EnableFileLog": false,
"LogFormat": "plain",
"LogLevel": "info"
}
ApplePushTopic es el identificador de paquete de iOS de tu compilación. ApplePushUseDevelopment es true solo para compilaciones instaladas desde Xcode. Las llamadas suenan en los iPhones a través de push VoIP, que usan la misma clave y no requieren nada más aquí.
El sitio incluye una adición lista para usar en el archivo de composición, compose.push.example.yaml. Ejecuta la imagen publicada, ghcr.io/antimatterchat/push-proxy:latest.
curl -fsSLO https://antimatter.chat/compose.push.example.yaml
docker compose -f compose.yaml -f compose.push.example.yaml --profile push up -d
docker compose -f compose.yaml -f compose.push.example.yaml logs push-proxy
Al iniciar, el registro del proxy indica cada destino de notificaciones push que configuró y registra un error para aquellos cuyas credenciales no puede cargar. El proxy no publica ningún puerto: solo Antimatter puede acceder a él, a través de la red de composición.
Sin Docker, instala en su lugar el paquete .deb o .rpm del proxy de notificaciones: consulta Los paquetes del servicio de GIF y del proxy de notificaciones.
Configura Antimatter para que apunte al proxy
En Consola de sistema › Entorno › Servidor de Notificaciones Móviles, establece Habilitar las Notificaciones a Dispositivos Móviles en Enviar notificaciones push a través de tu propio proxy de push, y Servidor de Notificaciones Móviles en http://push-proxy:8066 (o la dirección HTTPS del proxy si se ejecuta en otro lugar). No se puede guardar la página con esta opción y sin dirección. Para dejar de enviar notificaciones push, selecciona No enviar notificaciones a dispositivos móviles. O mediante variables en el servicio antimatter:
AM_EMAILSETTINGS_SENDPUSHNOTIFICATIONS: "true"
AM_EMAILSETTINGS_PUSHNOTIFICATIONSERVER: http://push-proxy:8066
Para verificar: inicia sesión con la aplicación móvil, ponla en segundo plano y que otra cuenta te mencione. Si no llega nada, busca push en el registro de Antimatter y en el registro del proxy: indican si el tipo de dispositivo es desconocido, si se rechazó una clave o si el dispositivo pertenece a otra compilación de la aplicación.
Contenido de las notificaciones
Consola de sistema › Configuración del Sitio › Notificaciones › Contenido de las Notificaciones Móviles (EmailSettings.PushNotificationContents):
| Opción | Valor |
|---|---|
| Descripción genérica con solo el nombre del remitente | generic_no_channel |
| Descripción genérica con los nombres del remitente y del canal | generic |
| Contenido completo del mensaje enviado en la carga de la notificación (predeterminado) | full |
| Contenido completo del mensaje recuperado del servidor al recibirlo | id_loaded |
Con id_loaded, la notificación que pasa por el proxy, Apple y Google solo transportan un id, y la aplicación recupera el mensaje de tu servidor: el texto del mensaje nunca pasa por sus servicios. Es la mejor opción cuando los mensajes son confidenciales.
Cantidad Max de Notificaciones por Canal, en la página Servidor de Notificaciones Móviles, (TeamSettings.MaxNotificationsPerChannel, 1000 por defecto) es la cantidad máxima de miembros que puede tener un canal para que @here, @all y @channel funcionen. En canales más grandes, esas menciones y los indicadores de escritura se desactivan.