E-mailová a pushová oznámení
Antimatter odesílá e-maily pro pozvánky, obnovení hesla, ověření a zmeškané zprávy a pushová oznámení do mobilní aplikace přes push proxy. Bez konfigurace ani jedno nefunguje.
Odchozí e-maily (SMTP)
Antimatter odesílá e-maily přes SMTP server, který poskytnete: e-mailový server vaší organizace, nebo službu pro transakční e-maily. Bez něj lidé nemohou obnovit zapomenuté heslo, e-mailové pozvánky a ověření nedorazí a nikdo nedostane e-mailová oznámení o zmeškaných zprávách.
Nastavte to v Systémová konzole › Prostředí › SMTP nebo pomocí proměnných:
| Nastavení | Klíč a proměnná | Výchozí |
|---|---|---|
| SMTP Server | EmailSettings.SMTPServer, AM_EMAILSETTINGS_SMTPSERVER | localhost |
| Port SMTP serveru | EmailSettings.SMTPPort, AM_EMAILSETTINGS_SMTPPORT | 10025 |
| Povolit SMTP autentizaci | EmailSettings.EnableSMTPAuth, AM_EMAILSETTINGS_ENABLESMTPAUTH | vypnuto bez zabezpečení spojení, zapnuto s ním |
| Uživatelské jméno SMTP serveru | EmailSettings.SMTPUsername, AM_EMAILSETTINGS_SMTPUSERNAME | prázdné |
| Heslo SMTP serveru | EmailSettings.SMTPPassword, AM_EMAILSETTINGS_SMTPPASSWORD | prázdné |
| Zabezpečení připojení | EmailSettings.ConnectionSecurity, AM_EMAILSETTINGS_CONNECTIONSECURITY | Žádné (prázdné); nebo TLS nebo STARTTLS |
| Přeskočit ověření certifikátu serveru | EmailSettings.SkipServerCertificateVerification | vypnuto. V produkčním prostředí ho nechte vypnuté. |
Použijte STARTTLS na portu 587 nebo TLS na portu 465, jak to uvádí váš poskytovatel. Poté na stejné stránce klikněte na Test připojení: Antimatter odešle testovací e-mail na vaši vlastní adresu.
Typická konfigurace s Docker Compose, v souboru compose.override.yaml vedle 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
Umístěte SMTP_PASSWORD do souboru .env. Compose soubor webu umísťuje server na výchozí síť, která má přístup na Internet, takže se může spojit s externím SMTP serverem.
Nastavení odesílatele a e-mailových oznámení
V Systémová konzole › Konfigurace webu › Oznámení:
| Nastavení | Klíč | Výchozí |
|---|---|---|
| Povolit e-mailová oznámení | EmailSettings.SendEmailNotifications | zapnuto |
| Zobrazované jméno oznámení | EmailSettings.FeedbackName | prázdné |
| Adresa odesílatele oznámení | EmailSettings.FeedbackEmail | test@example.com: změňte to |
| Adresa pro odpovědi na oznámení | EmailSettings.ReplyToAddress | test@example.com: změňte to |
| E-mailová adresa podpory | SupportSettings.SupportEmail | prázdné |
| Adresa v patičce oznámení | EmailSettings.FeedbackOrganization | prázdné |
| Obsah e-mailových oznámení | EmailSettings.EmailNotificationContentsType | Odesílat plný obsah zprávy (full), nebo obecný popis s pouze jménem odesílatele (generic) |
| Zapnout slučování e-mailů | EmailSettings.EnableEmailBatching | vypnuto. Zapnuto, lidé si mohou vybrat, aby dostávali zmeškané zprávy seskupené do jednoho e-mailu každých 15 minut nebo každou hodinu, místo jednoho e-mailu za každou zprávu. |
| Používat název kanálu v e-mailových oznámeních | EmailSettings.UseChannelInEmailNotifications | Vypnuto |
| Zapnout lištu režimu náhledu | EmailSettings.EnablePreviewModeBanner | zapnuto: když jsou e-mailová oznámení vypnutá, lišta informuje administrátory, že e-maily nejsou nakonfigurovány |
Adresa Odesílatel musí být adresa, ze které je váš SMTP server povolen odesílat. Pro jeho doménu nastavte SPF a DKIM, jinak se e-maily mohou ocitnout ve složce se spamem.
Nastavení přihlašování související s e-mailem (například, zda musí nové účty ověřit svou adresu, nebo zda lze posílat pozvánky e-mailem) najdete v sekci Přihlašování a účty.
Push oznámení do mobilní aplikace
Jak push funguje
Antimatter se nikdy nekomunikuje přímo s Apple ani Google. Pro každé oznámení volá push proxy, která drží přihlašovací údaje mobilní aplikace a předává oznámení Apple (APNs) pro iPhony a Google (Firebase Cloud Messaging) pro telefony s Androidem. Apple i Google doručí oznámení pouze tehdy, když je odesláno s přihlašovacími údaji aplikace, pro kterou je určeno. Push proxy tedy funguje s jednou verzí mobilní aplikace: s tou, jejíž přihlašovací údaje drží.
- Antimatter neprovozuje veřejnou push proxy. Push proxy Antimatter provozujete sami, s přihlašovacími údaji verze mobilní aplikace, kterou vaši uživatelé nainstalují.
- Antimatter nikdy neodesílá oznámení do push služeb Mattermost, ať už testovacích nebo hostovaných: ty doručují pouze do vlastních mobilních aplikací Mattermost. Pokud je server nastaven na jednu z jejich adres (například
https://push-test.mattermost.com, kterou používají starší konfigurace Mattermost), nic neodesílá a při spuštění zaznamená varování.
Nový server nemá nakonfigurovaný server push oznámení, takže do momentu, kdy nastavíte adresu vaší push proxy, žádná push oznámení neodesílá. Do té doby mobilní aplikace funguje, ale nedostává žádná oznámení.
Spusťte push proxy
Push proxy se nachází v repozitáři push-proxy. Její README vysvětluje, jak získat dva přihlašovací údaje, které pocházejí z účtů, které publikují vaši verzi mobilní aplikace:
- Android: soubor služebního účtu Firebase projektu, který vaše Android verze používá.
- iOS: APNs autentizační klíč (
AuthKey_<KEY ID>.p8) Apple developerského účtu, který publikuje vaši iOS verzi, včetně ID klíče a ID týmu.
Umístěte je vedle compose.yaml, spolu s konfiguračním souborem proxy:
push-proxy/
config/antimatter-push-proxy.json
certs/AuthKey_ABCDE12345.p8
certs/firebase-service-account.json
push-proxy/config/antimatter-push-proxy.json, s vašim bundle identifier, ID klíče a ID týmu:
{
"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 je iOS bundle identifier vaší verze. ApplePushUseDevelopment je true pouze pro verze nainstalované z Xcode. Hovory se na iPhony připojí pomocí VoIP push, které používají stejný klíč a zde nevyžadují nic dalšího.
Web obsahuje hotový doplněk pro soubor compose, compose.push.example.yaml. Spouští publikovaný obraz, 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
Při spuštění log proxy vyjmenuje každý cíl push notifikací, který nastavila, a zaznamená chybu pro ty, u kterých se jí nepodařilo načíst přihlašovací údaje. Proxy nezveřejňuje žádný port: dosáhne na ni pouze Antimatter, a to přes síť compose.
Bez Dockeru nainstalujte místo toho balíček .deb nebo .rpm push proxy: viz Balíčky služby GIF a push proxy.
Nasměrujte Antimatter na proxy
V Systémová konzole › Prostředí › Server push oznámení nastavte Povolit push oznámení na Odesílat push oznámení přes vlastní push proxy a Server push oznámení na http://push-proxy:8066 (nebo HTTPS adresu proxy, pokud běží jinde). Stránku nelze uložit, pokud je tato možnost zvolena a adresa je prázdná. Pokud chcete přestat odesílat push oznámení, zvolte Neposílat push oznámení. Nebo pomocí proměnných na službě antimatter:
AM_EMAILSETTINGS_SENDPUSHNOTIFICATIONS: "true"
AM_EMAILSETTINGS_PUSHNOTIFICATIONSERVER: http://push-proxy:8066
K ověření: přihlaste se pomocí mobilní aplikace, přepněte ji na pozadí a nechte jiný účet, aby vás zmínil. Pokud nic nedorazí, hledejte push v logu Antimatter a v logu proxy: tam je uvedeno, zda je typ zařízení neznámý, byl klíč zamítnut, nebo zda zařízení patří k jiné verzi aplikace.
Co notifikace obsahují
Systémová konzole › Konfigurace webu › Oznámení › Obsah push oznámení (EmailSettings.PushNotificationContents):
| Možnost | Hodnota |
|---|---|
| Obecný popis pouze se jménem odesílatele | generic_no_channel |
| Obecný popis se jménem odesílatele a kanálu | generic |
| Plný obsah zprávy odeslaný v nákladu notifikace (výchozí) | full |
| Plný obsah zprávy stažený ze serveru při přijetí | id_loaded |
S id_loaded prochází notifikace, která jde přes proxy, Apple a Google pouze identifikátorem, a aplikace si zprávu stáhne z vašeho serveru: text zprávy nikdy neprojde jejich službami. Je to nejlepší volba, pokud jsou zprávy důvěrné.
Prahová hodnota pro velká oznámení v kanálu na stránce Server push oznámení (TeamSettings.MaxNotificationsPerChannel, výchozí hodnota 1000) je maximální počet členů, které může kanál mít, aby fungovaly zmínky @here, @all a @channel. V větších kanálech jsou tyto zmínky a indikátory psaní vypnuty.