E-mail- és push-értesítések
Az Antimatter e-mailt küld meghívásokhoz, jelszó-visszaállításokhoz, hitelesítéshez és elmaradt üzenetekhez, valamint push-értesítéseket a mobilalkalmazásba egy push-proxy szerveren keresztül. Mindkettő csak akkor működik, ha beállítja.
Kimenő e-mail (SMTP)
Az Antimatter egy általad megadott SMTP-szerveren keresztül küld e-mailt: a szervezeted levelezőszerverén, vagy egy transzaktionális e-mail szolgáltatáson. Enélkül a felhasználók nem állíthatják vissza elfelejtett jelszavukat, nem érkeznek meg a meghívó- és hitelesítő e-mailek, és senki sem kap e-mail-értesítést az elmaradt üzenetekről.
Állítsa be a Rendszerkonzol › Környezet › SMTP menüpontban, vagy változókkal:
| Beállítás | Kulcs és változó | Alapérték |
|---|---|---|
| SMTP szerver | EmailSettings.SMTPServer, AM_EMAILSETTINGS_SMTPSERVER | localhost |
| SMTP szerver port | EmailSettings.SMTPPort, AM_EMAILSETTINGS_SMTPPORT | 10025 |
| SMTP hitelesítés engedélyezése | EmailSettings.EnableSMTPAuth, AM_EMAILSETTINGS_ENABLESMTPAUTH | ki, ha nincs kapcsolatbiztonság, be, ha van |
| SMTP szerver felhasználónév | EmailSettings.SMTPUsername, AM_EMAILSETTINGS_SMTPUSERNAME | üres |
| SMTP szerver jelszó | EmailSettings.SMTPPassword, AM_EMAILSETTINGS_SMTPPASSWORD | üres |
| Kapcsolat biztonság | EmailSettings.ConnectionSecurity, AM_EMAILSETTINGS_CONNECTIONSECURITY | Nincs (üres); vagy TLS, illetve STARTTLS |
| A szerver tanúsítvány ellenőrzésének kihagyása | EmailSettings.SkipServerCertificateVerification | ki. Éles környezetben maradjon kikapcsolva. |
Használja a STARTTLS módot 587-es porton, vagy a TLS módot 465-ös porton, ahogy a szolgáltatója előírja. Ezután kattintson a Kapcsolat tesztelése gombra ugyanazon az oldalon: az Antimatter teszt e-mailt küld a saját címedre.
Egy tipikus Docker Compose beállítás, a compose.yaml mellett lévő compose.override.yaml fájlban:
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
A SMTP_PASSWORD értéket tedd a .env fájlba. A webhely compose fájlja a szervert az alapértelmezett hálózatra helyezi, amelynek van internet-hozzáférése, így eléri a külső SMTP-szervereket is.
Feladó- és értesítő e-mail-beállítások
A Rendszerkonzol › Oldal beállítások › Értesítések menüpontban:
| Beállítás | Kulcs | Alapérték |
|---|---|---|
| E-mail értesítések engedélyezése | EmailSettings.SendEmailNotifications | bekapcsolva |
| Értesítés megjelenítési név | EmailSettings.FeedbackName | üres |
| Értesítés feladó címe | EmailSettings.FeedbackEmail | test@example.com: módosítsd |
| Értesítés válasz (Reply-To) címe | EmailSettings.ReplyToAddress | test@example.com: módosítsd |
| Ügyfélszolgálati e-mail cím | SupportSettings.SupportEmail | üres |
| Értesítési lábléc levelezési cím | EmailSettings.FeedbackOrganization | üres |
| E-mail értesítés tartalma | EmailSettings.EmailNotificationContentsType | Teljes üzenettartalom küldése (full), vagy általános leírás csak a feladó nevével (generic) |
| E-mail kötegelt küldés engedélyezése | EmailSettings.EnableEmailBatching | ki. Be, ha a felhasználók azt szeretnék, hogy az elmaradt üzenetek 15 percenként vagy óránként egy-egy e-mailben érkezzenek meg, külön-külön küldött e-mailek helyett. |
| Csatorna név használata az e-mail-értesítésekben | EmailSettings.UseChannelInEmailNotifications | ki |
| Előnézet mód banner engedélyezése | EmailSettings.EnablePreviewModeBanner | be: amíg az e-mail-értesítések kikapcsolva vannak, egy sáv tájékoztatja az adminisztrátorokat, hogy az e-mail nem lett beállítva |
A Feladó címnek olyan címnévre kell lennie, amellyel az SMTP-szerver jogosult küldeni; állítsa be a SPF- és DKIM-rekordokat a szerver domainjéhez, különben a levelek a spam mappába kerülhetnek.
A bejelentkezéssel kapcsolatos e-mailbeállítások (például, hogy az új fiókoknak ellenőrizniük kell-e a címüket, illetve hogy e-mailben küldhetők-e meghívók) a Bejelentkezés és fiókok oldalon találhatók.
Push-értesítések a mobilalkalmazásba
A push-értesítések működése
Az Antimatter soha nem kommunikál közvetlenül az Apple vagy a Google szervereivel. Minden értesítésnél egy push proxyt (push-közvetítőt) hív meg, amely a mobilalkalmazás hitelesítő adatait tárolja, és továbbítja az értesítést az Apple APNs szervereihez iPhone-ok számára, illetve a Google Firebase Cloud Messaging szervereihez Android-ok számára. Az Apple és a Google csak akkor szállítanak le értesítést, ha az az adott alkalmazáshoz tartozó hitelesítő adatokkal küldték. Ezért egy push proxy egyetlen mobilalkalmazás-verzióval működik: azzal, amelyik hitelesítő adatait tárolja.
- Az Antimatter nem üzemeltet nyilvános push proxyt. Önnek kell üzemeltetnie az Antimatter push proxyt, a felhasználók által telepített mobilalkalmazás-verzió hitelesítő adataival.
- Az Antimatter soha nem küld értesítéseket a Mattermost push-szolgáltatásaihoz, sem teszt-, sem hostolt verzióhoz: ezek kizárólag a Mattermost saját mobilalkalmazásaihoz szállítanak. Ha a szerver egyik ilyen címre van beállítva (például a
https://push-test.mattermost.com, amelyet a régebbi Mattermost-konfigurációk használnak), nem küld semmit, és indításkor figyelmeztetést ír a naplóba.
Egy új szerveren nincs push-értesítési szerver, ezért nem küld push-értesítéseket, amíg be nem állítja a push proxy címét. Addig a mobilalkalmazás működik, de nem kap értesítéseket.
A push proxy futtatása
A push proxy a push-proxy repozitóriumban található. A README fájl elmagyarázza, hogyan kell beszerezni a két hitelesítő adatot, amelyek onnan származnak, ahol a mobilalkalmazás-verzió publikálva van:
- Android: a Firebase-projekt szolgálati fiók fájlja, amelyet az Android-verzió használ.
- iOS: egy APNs hitelesítő kulcs (
AuthKey_<KEY ID>.p8) az Apple fejlesztői fiókban, amely az iOS-verziót publikálja, a kulcs azonosítójával és a csapat azonosítójával.
Helyezze őket a compose.yaml mellé, a proxy konfigurationsfájljával együtt:
push-proxy/
config/antimatter-push-proxy.json
certs/AuthKey_ABCDE12345.p8
certs/firebase-service-account.json
push-proxy/config/antimatter-push-proxy.json, a bundle azonosítóval, a kulcs azonosítóval és a csapat azonosítóval:
{
"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"
}
Az ApplePushTopic az iOS-verzió bundle azonosítója. Az ApplePushUseDevelopment csak akkor true, ha a verziót Xcode-ból telepítették. A hívások iPhone-okon VoIP push-ökön keresztül csengenek, amelyek ugyanazt a kulcsot használják, és itt nem igényelnek további beállítást.
A webhelyen kész kiegészítő áll rendelkezésre a compose-fájlhoz: compose.push.example.yaml. Ez a publikált ghcr.io/antimatterchat/push-proxy:latest képet futtatja.
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
Indításkor a proxy naplója felsorolja a beállított push célpontokat, és hibát jelez minden olyan célpont számára, amelynek hitelesítő adatait nem tudja betölteni. A proxy nem publikál portot: csak az Antimatter érheti el, a compose hálózaton keresztül.
Docker nélkül a push proxy .deb vagy .rpm csomagját telepítse: lásd A GIF-szolgáltatás és a push proxy csomagjai.
Az Antimatter beállítása a proxyra
A Rendszerkonzol › Környezet › Push értesítés szerver menüpontban állítsa be az Push értesítések engedélyezése opciót az Értesítések küldése saját push proxy szerveren keresztül értékre, a Push értesítés szerver mezőt pedig a http://push-proxy:8066 címre (vagy a proxy HTTPS-címére, ha más helyen fut). Az oldal nem menthető, ha ez az opció be van kapcsolva, de nincs megadva cím. A push értesítések küldésének leállításához válassza a Ne küldjön push értesítéseket lehetőséget. Vagy változókkal az antimatter szolgáltatáson:
AM_EMAILSETTINGS_SENDPUSHNOTIFICATIONS: "true"
AM_EMAILSETTINGS_PUSHNOTIFICATIONSERVER: http://push-proxy:8066
Ellenőrzéshez: jelentkezzen be a mobilappal, helyezze a háttérbe, és kérje meg egy másik fiókot, hogy emelje meg. Ha nem érkezik semmi, keresse a push kulcsszót az Antimatter naplójában és a proxy naplójában: ezek jelzik, ha ismeretlen az eszköz típusa, ha elutasítottak egy kulcsot, vagy ha az eszköz másik app verzióhoz tartozik.
Az értesítések tartalma
Rendszerkonzol › Oldal beállítások › Értesítések › Push értesítés tartalma (EmailSettings.PushNotificationContents):
| Opció | Érték |
|---|---|
| Általános leírás, csak a küldő nevével | generic_no_channel |
| Általános leírás a küldő és a csatorna nevével | generic |
| Teljes üzenettartalom a push értesítés terhelésében (alapérték) | full |
| Teljes üzenettartalom, amelyet a szerverről letöltenek érkezéskor | id_loaded |
Az id_loaded beállítással a proxy-n, Apple- és Google-szolgáltatáson áthaladó értesítés csak egy azonosítót tartalmaz, és az app a szerverről tölti le az üzenetet: az üzenetszöveg soha nem halad át a szolgáltatásaikon. Ez a legjobb választás, ha az üzenetek bizalmasak.
A Max értesítések csatornánként beállítás a Push értesítés szerver oldalon (TeamSettings.MaxNotificationsPerChannel, alapértelmezés szerint 1000) a csatorna maximális taglétszámát határozza meg, amelynél az @here, @all és @channel említések még működnek. Nagyobb csatornákban ezek az említések és a gépelési jelzők kikapcsolásra kerülnek.