Notificări prin e-mail și push
Antimatter trimite e-mailuri pentru invitații, resetarea parolei, verificare și mesaje ratate, precum și notificări push către aplicația mobilă printr-un proxy push. Niciuna dintre ele nu funcționează până nu o configurați.
E-mail în externe (SMTP)
Antimatter trimite e-mailuri printr-un server SMTP pe care îl furnizați: serverul de e-mail al organizației dumneavoastră sau un serviciu de e-mail tranzacțional. Fără acesta, utilizatorii nu își pot reseta parola uitată, invitațiile și verificările prin e-mail nu ajung și nimeni nu primește notificări prin e-mail pentru mesaje ratate.
Configurați-l în Consola de sistem › Mediu › SMTP sau cu variabile:
| Setare | Cheie și variabilă | Implicit |
|---|---|---|
| Server SMTP | EmailSettings.SMTPServer, AM_EMAILSETTINGS_SMTPSERVER | localhost |
| Portul Serverului SMTP | EmailSettings.SMTPPort, AM_EMAILSETTINGS_SMTPPORT | 10025 |
| Activați autentificarea SMTP | EmailSettings.EnableSMTPAuth, AM_EMAILSETTINGS_ENABLESMTPAUTH | dezactivat fără securitate de conexiune, activat cu ea |
| Utilizator Server SMTP | EmailSettings.SMTPUsername, AM_EMAILSETTINGS_SMTPUSERNAME | gol |
| Parola Serverului SMTP | EmailSettings.SMTPPassword, AM_EMAILSETTINGS_SMTPPASSWORD | gol |
| Siguranța conexiunii | EmailSettings.ConnectionSecurity, AM_EMAILSETTINGS_CONNECTIONSECURITY | Niciunul (gol); sau TLS sau STARTTLS |
| Ocolește verificarea certificatului de server | EmailSettings.SkipServerCertificateVerification | dezactivat. Păstrați-l dezactivat în producție. |
Folosiți STARTTLS pe portul 587 sau TLS pe portul 465, așa cum vă indică furnizorul. Apoi faceți clic pe Testează conexiunea pe aceeași pagină: Antimatter trimite un e-mail de testare la propria dumneavoastră adresă.
O configurare tipică cu Docker Compose, în compose.override.yaml lângă 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
Puneți SMTP_PASSWORD în .env. Fișierul de compunere al site-ului plasează serverul pe rețeaua implicită, care are acces la Internet, astfel încât poate ajunge la un server SMTP extern.
Setări pentru expeditor și e-mailuri de notificare
În Consola de sistem › Configurarea site-ului › Notificări:
| Setare | Cheie | Implicit |
|---|---|---|
| Activați notificările prin e-mail | EmailSettings.SendEmailNotifications | activat |
| Nume afișat al notificării | EmailSettings.FeedbackName | gol |
| Notificare de la adresa | EmailSettings.FeedbackEmail | test@example.com: modificați-l |
| Adresa de răspuns la adresa de notificare | EmailSettings.ReplyToAddress | test@example.com: modificați-l |
| Adresă de e-mail pentru suport | SupportSettings.SupportEmail | gol |
| Footer Adresa de notificare | EmailSettings.FeedbackOrganization | gol |
| Conținutul anunțului de e-mail | EmailSettings.EmailNotificationContentsType | Trimiteți conținutul complet al mesajului (full) sau o descriere generică cu doar numele expeditorului (generic) |
| Activați etichetarea prin e-mail | EmailSettings.EnableEmailBatching | dezactivat. Activat, utilizatorii pot alege să primească mesaje ratate grupate într-un singur e-mail la fiecare 15 minute sau la fiecare oră, în loc de un e-mail pentru fiecare. |
| Folosește numele canalului în notificările prin e-mail | EmailSettings.UseChannelInEmailNotifications | dezactivat |
| Activați bannerul Modul de previzualizare | EmailSettings.EnablePreviewModeBanner | activat: în timp ce notificările prin e-mail sunt dezactivate, un banner le spune administratorilor că e-mailul nu este configurat |
Adresa From trebuie să fie una de care serverul SMTP este autorizat să trimită; configurați SPF și DKIM pentru domeniul acestuia, altfel e-mailurile pot ajunge în folderele de spam.
Setările de autentificare legate de e-mail (de exemplu, dacă conturile noi trebuie să-și verifice adresa sau dacă invitațiile pot fi trimise prin e-mail) se află în Autentificare și conturi.
Notificări push către aplicația mobilă
Cum funcționează notificările push
Antimatter nu comunică direct cu Apple sau Google. Pentru fiecare notificare, apelează un proxy push, care deține credentialele aplicației mobile și transmite notificarea către Apple (APNs) pentru iPhone-uri și către Google (Firebase Cloud Messaging) pentru telefoanele Android. Apple și Google livrează o notificare doar dacă este trimisă cu credentialele aplicației pentru care este destinată. Astfel, un proxy push funcționează cu o singură versiune a aplicației mobile: cea ale cărei credentiale le deține.
- Antimatter nu rulează un proxy push public. Rulați singur proxy-ul push al Antimatter, folosind credentialele versiunii aplicației mobile pe care o instalează utilizatorii.
- Antimatter nu trimite niciodată notificări către serviciile push ale Mattermost, fie de test, fie găzduite: acestea livrează doar către aplicațiile mobile proprii ale Mattermost. Dacă serverul este configurat cu una dintre adresele lor (de exemplu,
https://push-test.mattermost.com, folosită de configurațiile mai vechi ale Mattermost), nu trimite nimic și înregistrează un avertisment la pornire.
Un server nou nu are un server de notificări push, deci nu trimite notificări push până când nu configurați adresa proxy-ului push. Până atunci, aplicația mobile funcționează, dar nu primește notificări.
Rulați proxy-ul push
Proxy-ul push se află în depozitul push-proxy. README-ul acestuia explică cum obțineți cele două credentiale, care provin din conturile care publică versiunea aplicației mobile:
- Android: un fișier de cont de serviciu al proiectului Firebase folosit de versiunea Android.
- iOS: o cheie de autentificare APNs (
AuthKey_<KEY ID>.p8) a contului de dezvoltator Apple care publică versiunea iOS, împreună cu ID-ul cheii și ID-ul echipei.
Plasați-le lângă compose.yaml, împreună cu fișierul de configurare al proxy-ului:
push-proxy/
config/antimatter-push-proxy.json
certs/AuthKey_ABCDE12345.p8
certs/firebase-service-account.json
push-proxy/config/antimatter-push-proxy.json, cu identificatorul de pachet, ID-ul cheii și ID-ul echipei:
{
"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 este identificatorul de pachet iOS al versiunii dumneavoastră. ApplePushUseDevelopment este true doar pentru versiunile instalate din Xcode. Apelurile sună pe iPhone-uri prin notificări push VoIP, care folosesc aceeași cheie și nu necesită nimic în plus aici.
Site-ul include un adăugare pregătită pentru fișierul de compozare, compose.push.example.yaml. Rulează imaginea publicată, 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
La pornire, jurnalul proxy-ului numește fiecare destinație de notificări push configurată și înregistrează o eroare pentru orice destinație a cărei credențiale nu le poate încărca. Proxy-ul nu publică nicio port: doar Antimatter îl poate atinge, pe rețeaua de compoziție.
Fără Docker, instalați în schimb pachetul .deb sau .rpm al proxy-ului de push: consultați Pachetele serviciului GIF și ale proxy-ului de push.
Indică Antimatter către proxy
În Consola de sistem › Mediu › Server Push de notificare, setează Activează Notificările la Trimite notificări push prin propriul proxy de notificări, și Server Push de notificare la http://push-proxy:8066 (sau adresa HTTPS a proxy-ului, dacă rulează în alt loc). Pagina nu poate fi salvată cu această opțiune și fără adresă. Pentru a înceta trimiterea notificărilor push, alege Nu trimiteți notificări push. Sau cu variabile pe serviciul antimatter:
AM_EMAILSETTINGS_SENDPUSHNOTIFICATIONS: "true"
AM_EMAILSETTINGS_PUSHNOTIFICATIONSERVER: http://push-proxy:8066
Pentru a verifica: autentifică-te cu aplicația mobilă, pune-o în fundal și lasă un alt cont să te menționeze. Dacă nu primești nimic, caută push în jurnalul Antimatter și în jurnalul proxy-ului: ele spun dacă tipul de dispozit este necunoscut, dacă o cheie a fost respinsă, sau dacă dispozitul aparține unei alte versiuni a aplicației.
Ce conțin notificările
Consola de sistem › Configurația site-ului › Notificări › Notificari Push Conținut (EmailSettings.PushNotificationContents):
| Opțiune | Valoare |
|---|---|
| Descriere generică doar cu numele expeditorului | generic_no_channel |
| Descriere generică cu numele expeditorului și al canalului | generic |
| Conținutul complet al mesajului trimis în sarcina notificării (implicit) | full |
| Conținutul complet al mesajului preluat de la server la primire | id_loaded |
Cu id_loaded, notificarea care trece prin proxy, Apple și Google poartă doar un id, iar aplicația preia mesajul de la serverul tău: textul mesajului nu trece niciodată prin serviciile lor. Este cea mai bună alegere când mesajele sunt confidențiale.
Notificări maxime pe canal, pe pagina Server Push de notificare, (TeamSettings.MaxNotificationsPerChannel, 1000 implicit) este cel mai mare număr de membri pe care un canal îl poate avea pentru ca @here, @all și @channel să funcționeze. În canalele mai mari, aceste mențiuni și indicatorii de tastare sunt dezactivate.