E-post- og pushvarsler
Antimatter sender e-post for invitasjoner, nullstilling av passord, verifisering og uleste meldinger, samt pushvarsler til mobilappen via en push-proxy. Ingen av delene fungerer før du har konfigurert dem.
Utgående e-post (SMTP)
Antimatter sender e-post via en SMTP-tjener du stiller til rådighet: organisasjonens e-posttjener eller en transaksjonell e-posttjeneste. Uten dette kan ikke brukere stille om et glemt passord, e-postinvitasjoner og verifisering ikke kommer frem, og ingen får e-postvarsler om uleste meldinger.
Stil dette i Systemkonsoll › Miljø › SMTP, eller med variabler:
| Innstilling | Nøkkel og variabel | Standard |
|---|---|---|
| SMTP-tjener | EmailSettings.SMTPServer, AM_EMAILSETTINGS_SMTPSERVER | localhost |
| SMTP-tjenerport | EmailSettings.SMTPPort, AM_EMAILSETTINGS_SMTPPORT | 10025 |
| Aktiver SMTP-autentisering | EmailSettings.EnableSMTPAuth, AM_EMAILSETTINGS_ENABLESMTPAUTH | av uten forbindelsessikkerhet, på med den |
| SMTP-tjenerbrukernavn | EmailSettings.SMTPUsername, AM_EMAILSETTINGS_SMTPUSERNAME | tom |
| SMTP-serverpassord | EmailSettings.SMTPPassword, AM_EMAILSETTINGS_SMTPPASSWORD | tom |
| Forbindelsessikkerhet | EmailSettings.ConnectionSecurity, AM_EMAILSETTINGS_CONNECTIONSECURITY | Ingen (tom); eller TLS eller STARTTLS |
| Hopp over verifisering av serversertifikat | EmailSettings.SkipServerCertificateVerification | av. La den stå av i produksjon. |
Bruk STARTTLS på port 587 eller TLS på port 465, slik leverandoren din oppgir. Klikk deretter på Test forbindelse på samme side: Antimatter sender en test-e-post til din egen adresse.
En typisk oppsett med Docker Compose, i compose.override.yaml ved siden av 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
Legg SMTP_PASSWORD i .env. Nettstedets compose-fil plasserer tjeneren på standardnettverket, som har tilgang til internett, slik at den kan nå en ekstern SMTP-tjener.
Avsender- og varslingse-postinnstillinger
I Systemkonsoll › Nettstedsoppsett › Varsler:
| Innstilling | Nøkkel | Standard |
|---|---|---|
| Aktiver e-postvarsler | EmailSettings.SendEmailNotifications | på |
| Visningsnavn for varsler | EmailSettings.FeedbackName | tom |
| Avsenderadresse for varsler | EmailSettings.FeedbackEmail | test@example.com: endre den |
| Svaradresse for varsler | EmailSettings.ReplyToAddress | test@example.com: endre den |
| E-postadresse for support | SupportSettings.SupportEmail | tom |
| Postadresse i bunntekst for varsler | EmailSettings.FeedbackOrganization | tom |
| Innhold i e-postvarsler | EmailSettings.EmailNotificationContentsType | Send fullt meldingsinnhold (full), eller en generell beskrivelse med kun avsenders navn (generic) |
| Aktiver e-postsamling | EmailSettings.EnableEmailBatching | av. På, kan brukere velge å få uleste meldinger samlet i én e-post hver 15. minutt eller hver time, i stedet for én e-post for hver melding. |
| Bruk kanalnavn i e-postvarsler | EmailSettings.UseChannelInEmailNotifications | av |
| Aktiver banner for forhåndsvisningsmodus | EmailSettings.EnablePreviewModeBanner | på: mens e-postvarsler er av, forteller et banner administratorer at e-post ikke er konfigurert |
Avsenderadressen må være en adresse SMTP-tjeneren din har tillatelse til å sende fra. Konfigurer SPF og DKIM for domenet, ellers kan e-postene havne i søppelposten.
Innstillinger for innlogging knyttet til e-post (om nye kontoer må verifisere adressen sin, om invitasjoner kan sendes via e-post) finnes under Innlogging og kontoer.
Skjermvarsler til mobilappen
Slik fungerer push
Antimatter kommuniserer aldri direkte med Apple eller Google. For hvert varsel kaller det en push-proxy, som har mobilappens legitimasjon og videresender varselet til Apple (APNs) for iPhone og til Google (Firebase Cloud Messaging) for Android-telefoner. Apple og Google leverer kun varsler som er sendt med legitimasjonen til den spesifikke appen. En push-proxy fungerer derfor med én byggetype av mobilappen: den som har legitimasjonen den inneholder.
- Antimatter driver ikke en offentlig push-proxy. Du driver selv Antimatter-push-proxyen med legitimasjonen til den byggetypen av mobilappen brukerne dine installerer.
- Antimatter sender aldri varsler til Mattermosts push-tjenester, verken test- eller vertsbaserte: de leverer kun til Mattermosts egne mobilapper. Hvis tjeneren er satt til én av deres adresser (som
https://push-test.mattermost.com, som eldre Mattermost-konfigurasjoner bruker), sendes ingenting, og en advarsel logges ved oppstart.
En ny tjener har ingen push-varseltjener, så den sender ingen push-varsler inntil du setter adressen til din push-proxy. Inntil da fungerer mobilappen, men mottar ingen varsler.
Kjør push-proxyen
Push-proxyen finnes i push-proxy-reservoaret. README-filen forklarer hvordan du får de to legitimasjonene, som kommer fra kontoene som publiserer bygget av mobilappen din:
- Android: en tjenestekontofil fra Firebase-prosjektet Android-bygget ditt bruker.
- iOS: en APNs-autentiseringsnøkkel (
AuthKey_<KEY ID>.p8) fra Apple-utviklerkontoen som publiserer iOS-bygget ditt, med nøkkel-ID og team-ID.
Plasser dem ved siden av compose.yaml, sammen med proxyens konfigurasjonsfil:
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 bündelidentifikator, nøkkel-ID og 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 er iOS-bündelidentifikatoren til bygget ditt. ApplePushUseDevelopment er true kun for bygger installert fra Xcode. Samtaler ringes på iPhone via VoIP-push, som bruker samme nøkkel og ikke krever noe mer her.
Nettstedet har en ferdig tilleggsfil til compose-filen, compose.push.example.yaml. Den kjører den utgitte bildet, 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
Ved oppstart navngir proxyens logg hver pushmål den har satt opp, og logger en feil for de der den ikke klarer å laste inn legitimasjon. Proxyen publiserer ingen port: bare Antimatter når den, på compose-nettverket.
Uten Docker installerer du i stedet .deb- eller .rpm-pakken for push-proxyen: se Pakkene for GIF-tjenesten og push-proxyen.
Pek Antimatter mot proxyen
I Systemkonsoll › Miljø › Push-varselserver, sett Aktiver pushvarsler til Send pushvarsler gjennom din egen pushproxy, og Push-varselserver til http://push-proxy:8066 (eller proxyens HTTPS-adresse hvis den kjører et annet sted). Siden kan ikke lagres med dette alternativet og ingen adresse. For å slutte å sende pushvarsler, velg Ikke send pushvarsler. Eller med variabler på antimatter-tjenesten:
AM_EMAILSETTINGS_SENDPUSHNOTIFICATIONS: "true"
AM_EMAILSETTINGS_PUSHNOTIFICATIONSERVER: http://push-proxy:8066
For å sjekke: logg inn med mobilappen, legg den i bakgrunnen og la en annen konto nevne deg. Hvis ingenting kommer, se etter push i Antimatters logg og i proxyens logg: de forteller om enhetstypen er ukjent, om en nøkkel ble avvist, eller om enheten tilhører en annen app-bygg.
Hva varsler inneholder
Systemkonsoll › Nettstedsoppsett › Varsler › Innhold i pushvarsler (EmailSettings.PushNotificationContents):
| Alternativ | Verdi |
|---|---|
| Generisk beskrivelse med kun avsendernavn | generic_no_channel |
| Generisk beskrivelse med avsender og kanalnavn | generic |
| Full meldingsinnhold sendt i varslens last (standard) | full |
| Full meldingsinnhold hentet fra serveren ved mottak | id_loaded |
Med id_loaded går varselet gjennom proxyen, og Apple og Google bærer kun en id, og appen henter meldingen fra din server: meldingstekst passerer aldri gjennom deres tjenester. Det er det beste valget når meldinger er fortrolige.
Grense for varsler i store kanaler, på siden Push-varselserver, (TeamSettings.MaxNotificationsPerChannel, 1000 som standard) er det største antallet medlemmer en kanal kan ha for at @here, @all og @channel skal fungere. I større kanaler slås disse nevningene og skriveindikatorer av.