Correu electrònic i notificacions push
Antimatter envia correu per a invitacions, restabliment de contrasenyes, verificació i missatges perduts, i notificacions push a l'aplicació mòbil mitjançant un proxy push. Cap d'aquests funciona fins que no el configures.
Correu sortant (SMTP)
Antimatter envia correu mitjançant un servidor SMTP que proveixis: el servidor de correu de la teva organització o un servei de correu transaccional. Sense això, la gent no pot restablir una contrasenya oblidada, les invitacions i verificacions per correu no arriben i ningú rep notificacions per correu dels missatges perduts.
Configura-ho a Consola del sistema › Entorn › SMTP, o amb variables:
| Paràmetre | Clau i variable | Valor per defecte |
|---|---|---|
| Servidor SMTP | EmailSettings.SMTPServer, AM_EMAILSETTINGS_SMTPSERVER | localhost |
| Port del servidor SMTP | EmailSettings.SMTPPort, AM_EMAILSETTINGS_SMTPPORT | 10025 |
| Habilita l'autenticació SMTP | EmailSettings.EnableSMTPAuth, AM_EMAILSETTINGS_ENABLESMTPAUTH | desactivat sense seguretat de connexió, activat amb seguretat |
| Nom d'usuari del servidor SMTP | EmailSettings.SMTPUsername, AM_EMAILSETTINGS_SMTPUSERNAME | buit |
| Contrasenya del servidor SMTP | EmailSettings.SMTPPassword, AM_EMAILSETTINGS_SMTPPASSWORD | buit |
| Seguretat de la connexió | EmailSettings.ConnectionSecurity, AM_EMAILSETTINGS_CONNECTIONSECURITY | Cap (buit); o bé TLS o STARTTLS |
| Omet la verificació del certificat del servidor | EmailSettings.SkipServerCertificateVerification | desactivat. Deixa-ho desactivat en producció. |
Utilitza STARTTLS al port 587 o TLS al port 465, segons indiqui el teu proveïdor. Després, fes clic a Provar connexió a la mateixa pàgina: Antimatter enviarà un correu de prova a la teva pròpia adreça.
Una configuració típica amb Docker Compose, a compose.override.yaml al costat de 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
Posa SMTP_PASSWORD a .env. El fitxer compose del lloc posa el servidor a la xarxa per defecte, que té accés a Internet, de manera que pot arribar a un servidor SMTP extern.
Configuració del remitent i del correu de notificacions
A Consola del sistema › Configuració del lloc › Notificacions:
| Paràmetre | Clau | Valor per defecte |
|---|---|---|
| Activa les notificacions per correu electrònic | EmailSettings.SendEmailNotifications | activat |
| Nom per mostrar de les notificacions | EmailSettings.FeedbackName | buit |
| Adreça d’origen de les notificacions | EmailSettings.FeedbackEmail | test@example.com: canvia-la |
| Adreça de resposta de les notificacions | EmailSettings.ReplyToAddress | test@example.com: canvia-la |
| Adreça de correu de suport | SupportSettings.SupportEmail | buit |
| Adreça postal del peu de les notificacions | EmailSettings.FeedbackOrganization | buit |
| Contingut de les notificacions per correu electrònic | EmailSettings.EmailNotificationContentsType | Envia el contingut complet del missatge (full), o bé una descripció genèrica amb només el nom del remitent (generic) |
| Activa el lot de correus electrònics | EmailSettings.EnableEmailBatching | desactivat. Si l'actives, la gent pot triar rebre els missatges perduts agrupats en un sol correu cada 15 minuts o cada hora, en lloc d'un correu per missatge. |
| Utilitza el nom del canal a les notificacions per correu | EmailSettings.UseChannelInEmailNotifications | desactivat |
| Activa la barra de mode de previsualització | EmailSettings.EnablePreviewModeBanner | activat: mentre les notificacions per correu estiguin desactivades, una banda informa els administradors que el correu no està configurat |
La direcció «De» ha de ser una adreça des de la qual el servidor SMTP tingui permís d'enviar; configura SPF i DKIM per al seu domini, o els correus poden acabar a les carpetes de correu brossa.
Les configuracions d'inici de sessió relacionades amb el correu electrònic (si els comptes nous han de verificar la seva adreça, si es poden enviar invitacions per correu) es troben a Inici de sessió i comptes.
Notificacions push a l'aplicació mòbil
Com funciona el push
Antimatter mai no parla directament amb Apple o Google. Per a cada notificació, crida un proxy de push, que guarda les credencials de l'aplicació mòbil i reenvia la notificació a Apple (APNs) per als iPhones i a Google (Firebase Cloud Messaging) per als telèfons Android. Apple i Google només lliuren una notificació quan s'envia amb les credencials de l'aplicació a la qual va dirigida. Per tant, un proxy de push funciona amb una sola versió de l'aplicació mòbil: la que té les credencials que ell guarda.
- Antimatter no executa un proxy de push públic. Tu mateix has d'executar el proxy de push d'Antimatter, amb les credencials de la versió de l'aplicació mòbil que instal·len els teus usuaris.
- Antimatter mai no envia notificacions als serveis de push de Mattermost, ja siguin de proves o allotjats: només lliuren notificacions a les pròpies aplicacions mòbils de Mattermost. Si el servidor està configurat amb una de les seves adreces (com ara
https://push-test.mattermost.com, que utilitzen les configuracions antigues de Mattermost), no envia res i registra un avís en arrencar.
Un servidor nou no té cap servidor de notificacions push, per la qual cosa no envia cap notificació push fins que no configures l'adreça del teu proxy de push. Fins llavors, l'aplicació mòbil funciona però no rep notificacions.
Executa el proxy de push
El proxy de push es troba al repositori push-proxy. El seu README explica com obtenir les dues credencials, que provenen dels comptes que publiquen la teva versió de l'aplicació mòbil:
- Android: un fitxer de compte de servei del projecte Firebase que utilitza la teva versió per a Android.
- iOS: una clau d'autenticació d'APNs (
AuthKey_<KEY ID>.p8) del compte de desenvolupador d'Apple que publica la teva versió per a iOS, amb el seu identificador de clau i l'identificador d'equip.
Col·loca-los al costat de compose.yaml, juntament amb el fitxer de configuració 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, amb el teu identificador de paquet, l'identificador de clau i l'identificador d'equip:
{
"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 és l'identificador de paquet iOS de la teva versió. ApplePushUseDevelopment és true només per a les versions instal·lades des de Xcode. Les trucades sonen als iPhones mitjançant pushs VoIP, que utilitzen la mateixa clau i no requereixen res més aquí.
El lloc web inclou una addició preparada al fitxer de composició, compose.push.example.yaml. Aquesta executa la imatge 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
En arrencar, el registre del proxy nomena cada objectiu d'enviament que ha configurat i registra un error per a qualsevol de les credencials que no pot carregar. El proxy no publica cap port: només Antimatter hi accedeix, a través de la xarxa de composició.
Si no utilitzeu Docker, instal·leu el paquet .deb o .rpm del proxy de notificacions automàtiques: consulteu Els paquets del servei de GIF i del proxy de notificacions automàtiques.
Apunta Antimatter al proxy
A Consola del sistema › Entorn › Servidor de notificacions push, establix Activa les notificacions push com a Envia notificacions push a través del teu propi proxy de notificacions push i Servidor de notificacions push com a http://push-proxy:8066 (o l'adreça HTTPS del proxy si s'executa en un altre lloc). No es pot desar la pàgina amb aquesta opció i sense cap adreça. Per deixar d'enviar notificacions push, tria No enviar notificacions push. O bé, mitjançant variables al servei antimatter:
AM_EMAILSETTINGS_SENDPUSHNOTIFICATIONS: "true"
AM_EMAILSETTINGS_PUSHNOTIFICATIONSERVER: http://push-proxy:8066
Per comprovar-ho: inicia sessió amb l'aplicació mòbil, posa-la en segon pla i fes que un altre compte et mencioni. Si no arriba res, busca push al registre d'Antimatter i al registre del proxy: indiquen si el tipus de dispositiu és desconegut, si s'ha rebutjat una clau o si el dispositiu pertany a una altra compilació de l'aplicació.
Què contenen les notificacions
Consola del sistema › Configuració del lloc › Notificacions › Contingut de les notificacions push (EmailSettings.PushNotificationContents):
| Opció | Valor |
|---|---|
| Descripció genèrica amb només el nom de l'enviadó | generic_no_channel |
| Descripció genèrica amb el nom de l'enviadó i del canal | generic |
| Contingut complet del missatge enviat a la càrrega de la notificació (per defecte) | full |
| Contingut complet del missatge obtingut del servidor en rebre la notificació | id_loaded |
Amb id_loaded, la notificació que passa pel proxy, Apple i Google només transporten un id, i l'aplicació obté el missatge del teu servidor: el text del missatge mai no passa pels seus serveis. És la millor opció quan els missatges són confidencials.
Llindar de notificacions per a canals grans, a la pàgina del Servidor de notificacions push (TeamSettings.MaxNotificationsPerChannel, 1000 per defecte), és el nombre màxim de membres que pot tenir un canal perquè les mencions @here, @all i @channel funcionin. En canals més grans, aquestes mencions i els indicadors d'escriptura es desactiven.