E-mail og push-notifikationer
Antimatter sender e-mail til invitationer, nulstilling af adgangskoder, verifikation og oversete beskeder, og push-notifikationer til mobilappen via en push-proxy. Ingen af delene fungerer, før du har konfigureret dem.
Udgående e-mail (SMTP)
Antimatter sender e-mail via en SMTP-server, som du stiller til rådighed: din organisations mailserver eller en transaktionsbaseret e-mailtjeneste. Uden det kan folk ikke nulstille en glemt adgangskode, e-mailinvitationer og verifikation når ikke frem, og ingen får e-mailnotifikationer om oversete beskeder.
Indstil det i Systemkonsol › Miljø › SMTP, eller med variabler:
| Indstilling | Nøgle og variabel | Standard |
|---|---|---|
| SMTP-server | EmailSettings.SMTPServer, AM_EMAILSETTINGS_SMTPSERVER | localhost |
| SMTP-serverport | EmailSettings.SMTPPort, AM_EMAILSETTINGS_SMTPPORT | 10025 |
| Aktivér SMTP-autentificering | EmailSettings.EnableSMTPAuth, AM_EMAILSETTINGS_ENABLESMTPAUTH | fra uden forbindelsessikkerhed, til med den |
| SMTP-serverbrugernavn | EmailSettings.SMTPUsername, AM_EMAILSETTINGS_SMTPUSERNAME | tom |
| SMTP-serveradgangskode | EmailSettings.SMTPPassword, AM_EMAILSETTINGS_SMTPPASSWORD | tom |
| Forbindelsessikkerhed | EmailSettings.ConnectionSecurity, AM_EMAILSETTINGS_CONNECTIONSECURITY | Ingen (tom); eller TLS eller STARTTLS |
| Spring validering af servercertifikat over | EmailSettings.SkipServerCertificateVerification | fra. Lad den være fra i produktion. |
Brug STARTTLS på port 587 eller TLS på port 465, som din udbyder angiver. Klik derefter på Test forbindelse på samme side: Antimatter sender en test-e-mail til din egen adresse.
En typisk opsætning med Docker Compose, i compose.override.yaml ved siden af 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
Sæt SMTP_PASSWORD i .env. Websitets compose-fil placerer serveren på det standardnetværk, som har internetadgang, så den kan nå en ekstern SMTP-server.
Afsender- og notifikationse-mailindstillinger
I Systemkonsol › Sitekonfiguration › Notifikationer:
| Indstilling | Nøgle | Standard |
|---|---|---|
| Aktivér e-mailnotifikationer | EmailSettings.SendEmailNotifications | til |
| Notifikationsvisningsnavn | EmailSettings.FeedbackName | tom |
| Notifikationsadresse (fra) | EmailSettings.FeedbackEmail | test@example.com: ændr den |
| Notifikationsadresse (svar til) | EmailSettings.ReplyToAddress | test@example.com: ændr den |
| Support-e-mailadresse | SupportSettings.SupportEmail | tom |
| Adresse i notifikationsfodnote | EmailSettings.FeedbackOrganization | tom |
| Indhold i e-mailnotifikationer | EmailSettings.EmailNotificationContentsType | Send fulde beskedindhold (full), eller en generisk beskrivelse med kun afsenders navn (generic) |
| Aktivér samling af e-mails | EmailSettings.EnableEmailBatching | fra. Til, kan folk vælge at få oversete beskeder grupperet i én e-mail hver 15. minut eller hver time, i stedet for én e-mail hver. |
| Brug kanalnavn i e-mailnotifikationer | EmailSettings.UseChannelInEmailNotifications | Fra |
| Aktivér banner for forudvisning | EmailSettings.EnablePreviewModeBanner | til: mens e-mailnotifikationer er fra, fortæller en banner administratorer, at e-mail ikke er konfigureret |
Afsenderadressen skal være en adresse, som din SMTP-server har tilladelse til at sende fra. Konfigurer SPF og DKIM for domænet, ellers kan e-mails ende i spam-mappen.
Indstillinger relateret til e-mail (f.eks. om nye konti skal verificere deres adresse, og om invitationer kan sendes via e-mail) findes under Login og konti.
Push-notifikationer til mobilappen
Sådan fungerer push
Antimatter taler aldrig direkte med Apple eller Google. For hver notifikation kalder det en push-proxy, som indeholder mobilappens legitimationsoplysninger og videresender notifikationen til Apple (APNs) for iPhones og til Google (Firebase Cloud Messaging) for Android-telefoner. Apple og Google leverer kun en notifikation, hvis den sendes med legitimationsoplysningerne for den pågældende app. En push-proxy fungerer derfor kun med én version af mobilappen: den, hvis legitimationsoplysninger den indeholder.
- Antimatter driver ikke en offentlig push-proxy. Du driver selv Antimatters push-proxy med legitimationsoplysningerne for den version af mobilappen, dine brugere installerer.
- Antimatter sender aldrig notifikationer til Mattermosts push-tjenester, uanset om de er test- eller hostede: de leverer kun til Mattermosts egne mobilapper. Hvis serveren er konfigureret til én af deres adresser (f.eks.
https://push-test.mattermost.com, som ældre Mattermost-konfigurationer bruger), sendes der intet, og der logges en advarsel ved opstart.
En ny server har ingen push-notifikationsserver, så den sender ingen push-notifikationer, indtil du angiver adressen til din push-proxy. Indtil da fungerer mobilappen, men modtager ingen notifikationer.
Kør push-proxyen
Push-proxyen findes i push-proxy-repositoriet. README-filen forklarer, hvordan man får de to legitimationsoplysninger, som kommer fra de konti, der publicerer din version af mobilappen:
- Android: en servicekonto-fil fra det Firebase-projekt, din Android-version bruger.
- iOS: en APNs-autentificeringsnøgle (
AuthKey_<KEY ID>.p8) fra det Apple-udviklerkonto, der publicerer din iOS-version, samt nøgle-ID og team-ID.
Placer dem ved siden af compose.yaml sammen med proxyens 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-identifikator, nøgle-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 din versions iOS-bundle-identifikator. ApplePushUseDevelopment er true kun for versioner installeret fra Xcode. Opkald ringer på iPhones via VoIP-pushes, som bruger den samme nøgle og ikke kræver yderligere indstillinger her.
Siden har en færdig tilføjelse til compose-filen, compose.push.example.yaml. Den kører det publicerede image, 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 start nævner proxyens log hver push-mål, den opsætter, og logger en fejl for dem, hvis dens credentials ikke kan indlæses. Proxyen publicerer ingen port: kun Antimatter når til den, på compose-netværket.
Uden Docker installerer du i stedet push-proxyens .deb- eller .rpm-pakke: se GIF-tjenesten og push-proxy-pakkerne.
Peg Antimatter på proxyen
I Systemkonsol › Miljø › Push-notifikationsserver, sæt Aktivér pushnotifikationer til Send pushnotifikationer gennem din egen push-proxy, og Push-notifikationsserver til http://push-proxy:8066 (eller proxyens HTTPS-adresse, hvis den kører et andet sted). Siden kan ikke gemmes med dette valg og ingen adresse. For at stoppe afsendelsen af pushnotifikationer, vælg Send ikke pushnotifikationer. Eller med variabler på antimatter-tjenesten:
AM_EMAILSETTINGS_SENDPUSHNOTIFICATIONS: "true"
AM_EMAILSETTINGS_PUSHNOTIFICATIONSERVER: http://push-proxy:8066
For at tjekke: log ind med mobilappen, læg den i baggrunden og få en anden konto til at omtale dig. Hvis intet ankommer, søg efter push i Antimatters log og i proxyens log: de fortæller, om enhedstypen er ukendt, en nøgle blev afvist, eller om enheden tilhører en anden app-version.
Indhold i notifikationer
Systemkonsol › Sitekonfiguration › Notifikationer › Indhold i pushnotifikationer (EmailSettings.PushNotificationContents):
| Valg | Værdi |
|---|---|
| Generisk beskrivelse med kun afsenders navn | generic_no_channel |
| Generisk beskrivelse med afsender og kanalnavne | generic |
| Fuld beskedtekst sendt i notifikationens payload (standard) | full |
| Fuld beskedtekst hentet fra serveren ved modtagelse | id_loaded |
Med id_loaded indeholder notifikationen, der går gennem proxyen, Apple og Google, kun en id, og appen henter beskeden fra din server: beskedtekst passerer aldrig deres tjenester. Det er det bedste valg, når beskeder er fortrolige.
Grænse for notifikationer i store kanaler på siden Push-notifikationsserver (TeamSettings.MaxNotificationsPerChannel, 1000 som standard) er det største antal medlemmer, en kanal kan have, for at @here, @all og @channel skal fungere. I større kanaler slås disse omtaler og skriveindikatorer fra.