E-mail- en pushmeldingen
Antimatter stuurt e-mail voor uitnodigingen, wachtwoordreset, verificatie en gemiste berichten, en pushmeldingen naar de mobiele app via een push-proxy. Zonder configuratie werkt niets.
Uitgaande e-mail (SMTP)
Antimatter stuurt e-mail via een SMTP-server die u aanlevert: de mailserver van uw organisatie of een transactie-e-mailservice. Zonder deze kunnen gebruikers geen vergeten wachtwoord resetten, komen e-mailuitnodigingen en verificatie niet aan, en krijgt niemand e-mailmeldingen over gemiste berichten.
Stel dit in via Systeemconsole › Omgeving › SMTP, of met variabelen:
| Instelling | Sleutel en variabele | Standaardwaarde |
|---|---|---|
| SMTP e-mailserver | EmailSettings.SMTPServer, AM_EMAILSETTINGS_SMTPSERVER | localhost |
| SMTP server poort | EmailSettings.SMTPPort, AM_EMAILSETTINGS_SMTPPORT | 10025 |
| SMTP-verificatie inschakelen | EmailSettings.EnableSMTPAuth, AM_EMAILSETTINGS_ENABLESMTPAUTH | uit zonder beveiliging van de verbinding, aan met beveiliging |
| SMTP server gebruikersnaam | EmailSettings.SMTPUsername, AM_EMAILSETTINGS_SMTPUSERNAME | leeg |
| SMTP server wachtwoord | EmailSettings.SMTPPassword, AM_EMAILSETTINGS_SMTPPASSWORD | leeg |
| Beveiliging verbinding(en) | EmailSettings.ConnectionSecurity, AM_EMAILSETTINGS_CONNECTIONSECURITY | Geen (leeg); of TLS of STARTTLS |
| Verificatie van servercertificaat overslaan | EmailSettings.SkipServerCertificateVerification | uit. Laat dit uit in productie. |
Gebruik STARTTLS op poort 587 of TLS op poort 465, zoals uw provider aangeeft. Klik daarna op Verbinding testen op dezelfde pagina: Antimatter stuurt een testmail naar uw eigen adres.
Een typische opstelling met Docker Compose, in compose.override.yaml naast 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
Plaats SMTP_PASSWORD in .env. Het compose-bestand van de site plaatst de server op het standaardnetwerk, dat internettoegang heeft, zodat het een externe SMTP-server kan bereiken.
Instellingen voor afzender en meldingse-mail
In Systeemconsole › Site Configuratie › Meldingen:
| Instelling | Sleutel | Standaardwaarde |
|---|---|---|
| Inschakelen van E-mail Meldingen | EmailSettings.SendEmailNotifications | aan |
| Meldingsweergave Naam | EmailSettings.FeedbackName | leeg |
| Melding Van-adres | EmailSettings.FeedbackEmail | test@example.com: wijzig dit |
| Notificatie Antwoord-naar Adres | EmailSettings.ReplyToAddress | test@example.com: wijzig dit |
| E-mailadres voor ondersteuning | SupportSettings.SupportEmail | leeg |
| Melding voettekst mailadres | EmailSettings.FeedbackOrganization | leeg |
| Inhoud van e-mailmelding | EmailSettings.EmailNotificationContentsType | Volledige berichtinhoud versturen (full), of een generieke beschrijving met alleen de naam van de afzender (generic) |
| E-mailbatching inschakelen | EmailSettings.EnableEmailBatching | uit. Bij aan kunnen gebruikers kiezen om gemiste berichten in één e-mail te ontvangen, elke 15 minuten of elk uur, in plaats van een e-mail per bericht. |
| Kanaalnaam gebruiken in e-mailmeldingen | EmailSettings.UseChannelInEmailNotifications | Uit |
| Previewmodus Banner inschakelen | EmailSettings.EnablePreviewModeBanner | aan: terwijl e-mailmeldingen uit staan, toont een banner aan beheerders dat e-mail niet is geconfigureerd |
Het afzenderadres moet een adres zijn waarnaam uw SMTP-server mag versturen. Stel SPF en DKIM in voor het domein, anders kunnen de e-mails in de spammap belanden.
E-mailgerelateerde instellingen voor het aanmelden (zoals of nieuwe accounts hun adres moeten verifiëren en of uitnodigingen per e-mail kunnen worden verstuurd) vindt u in Aanmelden en accounts.
Pushmeldingen naar de mobiele app
Hoe push werkt
Antimatter communiceert nooit rechtstreeks met Apple of Google. Voor elke melding roept het een push-proxy aan, die de inloggegevens van de mobiele app bewaart en de melding doorstuurt naar Apple (APNs) voor iPhones en naar Google (Firebase Cloud Messaging) voor Android-apparaten. Apple en Google leveren een melding alleen af als deze is verstuurd met de inloggegevens van de app waaraan deze is bestemd. Een push-proxy werkt dus met één build van de mobiele app: de build waarvan de inloggegevens het bewaart.
- Antimatter draait geen openbare push-proxy. U draait de Antimatter push-proxy zelf, met de inloggegevens van de build van de mobiele app die uw gebruikers installeren.
- Antimatter stuurt nooit meldingen naar de pushdiensten van Mattermost, of het nu test- of gehoste diensten zijn: die leveren alleen af aan de eigen mobiele apps van Mattermost. Als de server is ingesteld op een van hun adressen (zoals
https://push-test.mattermost.com, wat oudere Mattermost-configuraties gebruiken), wordt er niets verstuurd en wordt bij het opstarten een waarschuwing gelogd.
Een nieuwe server heeft geen pushmeldingsserver, dus het stuurt geen pushmeldingen totdat u het adres van uw push-proxy instelt. Tot die tijd werkt de mobiele app, maar ontvangt u geen meldingen.
De push-proxy draaien
De push-proxy staat in de push-proxy-repository. De README legt uit hoe u de twee inloggegevens verkrijgt, die afkomstig zijn van de accounts die uw build van de mobiele app publiceren:
- Android: een serviceaccountbestand van het Firebase-project dat uw Android-build gebruikt.
- iOS: een APNs-authenticatiekey (
AuthKey_<KEY ID>.p8) van het Apple-ontwikkelaarsaccount dat uw iOS-build publiceert, inclusief de key-ID en team-ID.
Plaats ze naast compose.yaml, samen met het configuratiebestand van de proxy:
push-proxy/
config/antimatter-push-proxy.json
certs/AuthKey_ABCDE12345.p8
certs/firebase-service-account.json
push-proxy/config/antimatter-push-proxy.json, met uw bundle-identificatiecode, key-ID en 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 is de iOS-bundle-identificatiecode van uw build. ApplePushUseDevelopment is alleen true voor builds die zijn geïnstalleerd vanuit Xcode. Gesprekken klinken op iPhones via VoIP-pushes, die dezelfde key gebruiken en hier verder niets extra's vereisen.
De site bevat een kant-en-klaar toevoeging voor het compose-bestand, compose.push.example.yaml. Hiermee wordt het gepubliceerde image ghcr.io/antimatterchat/push-proxy:latest uitgevoerd.
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
Bij het opstarten noemt het logboek van de proxy elk push-doel dat is geconfigureerd en logt het een fout voor elk doel waarvan de inloggegevens niet kunnen worden geladen. De proxy publiceert geen poort: alleen Antimatter kan er toegang toe krijgen, via het compose-netwerk.
Zonder Docker installeert u in plaats daarvan het .deb- of .rpm-pakket van de push-proxy: zie De GIF-service en de push-proxy-pakketten.
Antimatter naar de proxy wijzen
Stel in Systeemconsole › Omgeving › Push Notificatie Server Inschakelen Push Meldingen in op Stuur pushmeldingen via uw eigen push-proxy en Push Notificatie Server op http://push-proxy:8066 (of het HTTPS-adres van de proxy als deze elders draait). De pagina kan niet worden opgeslagen met deze optie en zonder adres. Om het versturen van pushmeldingen te stoppen, kiest u Verstuur geen meldings-notificaties. Of met variabelen in de antimatter-service:
AM_EMAILSETTINGS_SENDPUSHNOTIFICATIONS: "true"
AM_EMAILSETTINGS_PUSHNOTIFICATIONSERVER: http://push-proxy:8066
Om te controleren: log in met de mobiele app, zet deze op de achtergrond en laat een ander account u vermelden. Als er niets aankomt, zoekt u naar push in het logboek van Antimatter en in het logboek van de proxy: hierin staat of het type apparaat onbekend is, of een sleutel is geweigerd, of het apparaat bij een andere app-build hoort.
Wat meldingen bevatten
Systeemconsole › Site Configuratie › Meldingen › Push Notificatie Inhoud (EmailSettings.PushNotificationContents):
| Optie | Waarde |
|---|---|
| Algemene beschrijving met alleen de naam van de afzender | generic_no_channel |
| Algemene beschrijving met de naam van de afzender en het kanaal | generic |
| Volledige berichtinhoud die in de payload van de melding wordt gestuurd (standaard) | full |
| Volledige berichtinhoud die bij ontvangst van de server wordt opgehaald | id_loaded |
Bij id_loaded bevat de melding die via de proxy gaat, bij Apple en Google alleen een id, en de app haalt het bericht op van uw server: de berichttekst gaat nooit via hun services. Dit is de beste keuze wanneer berichten vertrouwelijk zijn.
Meldingsdrempel voor grote kanalen, op de pagina Push Notification Server, (TeamSettings.MaxNotificationsPerChannel, standaard 1000) is het maximale aantal leden dat een kanaal mag hebben voor @here, @all en @channel te werken. In grotere kanalen zijn deze vermeldingen en de type-indicatoren uitgeschakeld.