E-post- och pushaviseringar
Antimatter skickar e-post för inbjudningar, lösenordsåterställningar, verifiering och missade meddelanden, samt pushaviseringar till mobilappen via en push-proxy. Ingen av delarna fungerar förrän du har konfigurerat den.
Utgående e-post (SMTP)
Antimatter skickar e-post via en SMTP-server som du tillhandahåller: din organisations mailserver eller en tjänst för transaktionell e-post. Utan den kan inte personer återställa ett glömt lösenord, e-postinbjudningar och verifiering når inte fram, och ingen får e-postaviseringar om missade meddelanden.
Ställ in det i Systemkonsol › Miljö › SMTP, eller med variabler:
| Inställning | Nyckel och variabel | Standard |
|---|---|---|
| SMTP Server | EmailSettings.SMTPServer, AM_EMAILSETTINGS_SMTPSERVER | localhost |
| SMTP serverport | EmailSettings.SMTPPort, AM_EMAILSETTINGS_SMTPPORT | 10025 |
| Aktivera SMTP-autentisering | EmailSettings.EnableSMTPAuth, AM_EMAILSETTINGS_ENABLESMTPAUTH | av utan anslutningssäkerhet, på med den |
| Användarnamn på SMTP-server | EmailSettings.SMTPUsername, AM_EMAILSETTINGS_SMTPUSERNAME | tom |
| Lösenord SMTP-server | EmailSettings.SMTPPassword, AM_EMAILSETTINGS_SMTPPASSWORD | tom |
| Anslutningssäkerhet | EmailSettings.ConnectionSecurity, AM_EMAILSETTINGS_CONNECTIONSECURITY | Ingen (tom); eller TLS eller STARTTLS |
| Ignorera verifiering av server-certifikat | EmailSettings.SkipServerCertificateVerification | av. Låt den vara av i produktionsmiljö. |
Använd STARTTLS på port 587 eller TLS på port 465, enligt vad din leverantör anger. Klicka sedan på Testa anslutningen på samma sida: Antimatter skickar ett testmejl till din egen adress.
En typisk uppsättning med Docker Compose, i compose.override.yaml bredvid 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
Placera SMTP_PASSWORD i .env. Webbplatsens compose-fil placerar servern på det standardnätverket, som har internetåtkomst, så den kan nå en extern SMTP-server.
Inställningar för avsändare och aviseringse-post
I Systemkonsol › Site-konfiguration › Aviseringar:
| Inställning | Nyckel | Standard |
|---|---|---|
| Aktivera meddelande via e-post | EmailSettings.SendEmailNotifications | på |
| Visningsnamn i meddelande | EmailSettings.FeedbackName | tom |
| Meddelande från adress | EmailSettings.FeedbackEmail | test@example.com: ändra den |
| Svara-till adress för meddelanden | EmailSettings.ReplyToAddress | test@example.com: ändra den |
| Mejladress för supportmejl | SupportSettings.SupportEmail | tom |
| E-postadress i sidfot | EmailSettings.FeedbackOrganization | tom |
| Innehåll e-postmeddelande | EmailSettings.EmailNotificationContentsType | Skicka fullständiga meddelandeinnehåll (full) eller en generell beskrivning med endast avsändarens namn (generic) |
| Aktivera massbearbetning av e-post | EmailSettings.EnableEmailBatching | av. På, så kan personer välja att få missade meddelanden grupperade i ett e-postmeddelande var 15:e minut eller var timme, istället för ett e-postmeddelande per meddelande. |
| Använd kanalnamn i e-postaviseringar | EmailSettings.UseChannelInEmailNotifications | Av |
| Aktivera läget Förhandsgranskning av banner | EmailSettings.EnablePreviewModeBanner | på: medan e-postaviseringar är av, visar en banner för administratörer att e-post inte är konfigurerad |
Avsändaradressen måste vara en adress som din SMTP-server är tillåten att skicka som. Ställ in SPF och DKIM för dess domän, annars kan e-postmeddelanden hamna i skräpposten.
E-postrelaterade inloggningsinställningar (till exempel om nya konton måste verifiera sin adress och om inbjudningar kan skickas per e-post) finns under Inloggning och konton.
Pushaviseringar till mobilappen
Så fungerar push
Antimatter kommunicerar aldrig direkt med Apple eller Google. För varje avisering anropar det en push-proxy som har mobilappens autentiseringsuppgifter och vidarebefordrar aviseringen till Apple (APNs) för iPhones och till Google (Firebase Cloud Messaging) för Android-telefoner. Apple och Google levererar bara en avisering när den skickas med de autentiseringsuppgifter som tillhör den app den avser. En push-proxy fungerar alltså med en bygg av mobilappen: den vars autentiseringsuppgifter den har.
- Antimatter driver ingen offentlig push-proxy. Du driver själv Antimatters push-proxy med de autentiseringsuppgifter som tillhör den bygg av mobilappen som dina användare installerar.
- Antimatter skickar aldrig aviseringar till Mattermosts push-tjänster, vare sig test- eller hostade: de levererar bara till Mattermosts egna mobilappar. Om servern är inställd på en av deras adresser (till exempel
https://push-test.mattermost.com, som äldre Mattermost-konfigurationer använder), skickas inget och en varning loggas vid start.
En ny server har ingen push-aviseringsserver, så den skickar inga pushaviseringar förrän du har ställt in adressen till din push-proxy. Förrän dess fungerar mobilappen men får inga aviseringar.
Kör push-proxyn
Push-proxyn finns i push-proxy-repositoryn. Dess README förklarar hur man får de två autentiseringsuppgifterna, som kommer från de konton som publicerar din bygg av mobilappen:
- Android: en tjänstekontosfil för det Firebase-projekt som din Android-bygg använder.
- iOS: en APNs-autentiseringsnyckel (
AuthKey_<KEY ID>.p8) för det Apple-utvecklaraccount som publicerar din iOS-bygg, med dess nyckel-ID och team-ID.
Placera dem bredvid compose.yaml, tillsammans med proxyns konfigurationsfil:
push-proxy/
config/antimatter-push-proxy.json
certs/AuthKey_ABCDE12345.p8
certs/firebase-service-account.json
push-proxy/config/antimatter-push-proxy.json, med din bundle identifier, nyckel-ID och team-ID:
{
"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 är din byggs iOS-bundle identifier. ApplePushUseDevelopment är true endast för bygg som installerats från Xcode. Samtal ringer på iPhones via VoIP-push, som använder samma nyckel och inte kräver något mer här.
Sajten har en färdig tillägg för compose-filen, compose.push.example.yaml. Den kör den publicerade bilden, 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
Vid start anger proxyns logg varje pushmål den har konfigurerat och loggar ett fel för sådana vars autentiseringsuppgifter den inte kan läsa. Proxyn publicerar ingen port: endast Antimatter når den, på compose-nätverket.
Utan Docker installerar du i stället push-proxyns .deb- eller .rpm-paket: se GIF-tjänsten och push-proxyns paket.
Peaka Antimatter mot proxyn
I Systemkonsol › Miljö › Push Notification Server, sätt Aktivera push-avisering till Skicka pushaviseringar genom din egen pushproxy, och Push Notification Server till http://push-proxy:8066 (eller proxyens HTTPS-adress om den körs någon annanstans). Sidan kan inte sparas med detta alternativ och ingen adress. För att sluta skicka pushaviseringar, välj Skicka inte push-aviseringar. Eller med variabler på tjänsten antimatter:
AM_EMAILSETTINGS_SENDPUSHNOTIFICATIONS: "true"
AM_EMAILSETTINGS_PUSHNOTIFICATIONSERVER: http://push-proxy:8066
För att kontrollera: logga in med mobilappen, placera den i bakgrunden och låt ett annat konto nämna dig. Om inget kommer, leta efter push i Antimatters logg och i proxyns logg: de anger om enhetstypen är okänd, om en nyckel avvisades, eller om enheten tillhör en annan appversion.
Vad aviseringar innehåller
Systemkonsol › Site-konfiguration › Aviseringar › Innehåll push-meddelande (EmailSettings.PushNotificationContents):
| Alternativ | Värde |
|---|---|
| Generisk beskrivning med endast avsändarnamn | generic_no_channel |
| Generisk beskrivning med avsändar- och kanalnamn | generic |
| Full meddelandehalt skickad i aviseringens last (standard) | full |
| Full meddelandehalt hämtad från servern vid mottagande | id_loaded |
Med id_loaded bär den avisering som går genom proxyn, Apple och Google, endast ett id, och appen hämtar meddelandet från din server: meddelandetext passerar aldrig deras tjänster. Det är det bästa valet när meddelanden är konfidentiella.
Aviseringsgräns i kanal med många användare, på sidan Push Notification Server, (TeamSettings.MaxNotificationsPerChannel, 1000 som standard) är det största antalet medlemmar en kanal kan ha för att @here, @all och @channel ska fungera. I större kanaler stängs dessa omnämnanden och skrivindikatorer av.