Имейл и пуш известия
Antimatter изпраща имейли за покани, нулиране на пароли, верификация и пропуснати съобщения, както и пуш известия до мобилното приложение чрез пуш прокси. Нито едно от двете не работи, докато не го конфигурирате.
Изходящ имейл (SMTP)
Antimatter изпраща имейли чрез SMTP сървър, който предоставяте: пощенският сървър на организацията ви или услуга за транзакционен имейл. Без него хората не могат да нулират забравена парола, имейл покани и верификация не стигат до адресатите и никой не получава имейл известия за пропуснати съобщения.
Задайте го в Системна конзола › Обкръжение › SMTP или чрез променливи:
| Настройка | Ключ и променлива | По подразбиране |
|---|---|---|
| SMTP сървър | EmailSettings.SMTPServer, AM_EMAILSETTINGS_SMTPSERVER | localhost |
| Порт на SMTP сървъра | EmailSettings.SMTPPort, AM_EMAILSETTINGS_SMTPPORT | 10025 |
| Активиране на SMTP удостоверяване | EmailSettings.EnableSMTPAuth, AM_EMAILSETTINGS_ENABLESMTPAUTH | изключено без сигурност на връзката, включено с такава |
| Потребителско име за SMTP сървър | EmailSettings.SMTPUsername, AM_EMAILSETTINGS_SMTPUSERNAME | празно |
| Парола за SMTP сървър | EmailSettings.SMTPPassword, AM_EMAILSETTINGS_SMTPPASSWORD | празно |
| Защита на връзката | EmailSettings.ConnectionSecurity, AM_EMAILSETTINGS_CONNECTIONSECURITY | Няма (празно); или TLS или STARTTLS |
| Пропускане потвърждението на сертификата на сървъра | EmailSettings.SkipServerCertificateVerification | изключено. Оставете го изключено в продуктивна среда. |
Използвайте STARTTLS на порт 587 или TLS на порт 465, както посочва вашият доставчик. След това щракнете върху Тест на връзката на същата страница: Antimatter изпраща тестов имейл до вашата собствена адрес.
Типична конфигурация с Docker Compose, в compose.override.yaml до 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
Поставете SMTP_PASSWORD в .env. Композиционният файл на сайта поставя сървъра в мрежата по подразбиране, която има достъп до интернет, така че може да достигне външен SMTP сървър.
Настройки за изпращащия и имейл известията
В Системна конзола › Конфигурация на сайта › Известия:
| Настройка | Ключ | По подразбиране |
|---|---|---|
| Разрешаване на известията по ел.поща | EmailSettings.SendEmailNotifications | включено |
| Показвано име за известия | EmailSettings.FeedbackName | празно |
| Уведомления от адрес | EmailSettings.FeedbackEmail | test@example.com: променете го |
| Отговор до адрес за уведомления | EmailSettings.ReplyToAddress | test@example.com: променете го |
| Адрес ел.поща за поддръжка | SupportSettings.SupportEmail | празно |
| Адрес, показван в долния колонтитул на уведомлението | EmailSettings.FeedbackOrganization | празно |
| Съдържание на известие по ел.поща | EmailSettings.EmailNotificationContentsType | Изпращане на пълното съдържание на съобщенията (full) или общо описание само с името на изпращащия (generic) |
| Разрешава пакетиране на ел.поща | EmailSettings.EnableEmailBatching | изключено. При включване хората могат да изберат да получават пропуснатите съобщения, групирани в един имейл на всеки 15 минути или на всеки час, вместо по един имейл за всяко. |
| Използване на името на канала в имейл известията | EmailSettings.UseChannelInEmailNotifications | изключено |
| Разреши банера за режим на преглед | EmailSettings.EnablePreviewModeBanner | включено: докато имейл известията са изключени, банер информира администраторите, че имейлът не е конфигуриран |
Адресът „От“ трябва да бъде такъв, за който SMTP сървърът ви има право да изпраща; конфигурирайте SPF и DKIM за неговия домейн, иначе имейлите могат да попаднат в папката за спам.
Настройките за вход, свързани с имейл (дали новите акаунти трябва да потвърдят адреса си, дали покани могат да се изпращат по имейл), се намират в Вход и акаунти.
Push известия до мобилното приложение
Как работят пуш известията
Antimatter никога не комуникира директно с Apple или Google. За всяко известие то извиква пуш прокси, който съхранява удостоверенията на мобилното приложение и препраща известията към Apple (APNs) за iPhone и към Google (Firebase Cloud Messaging) за Android телефони. Apple и Google доставят известие само когато то е изпратено с удостоверенията на съответното приложение. Следователно пуш прокси работи с една версия на мобилното приложение: тази, чийто удостоверения то съхранява.
- Antimatter не поддържа публичен пуш прокси. Вие сами управлявате пуш прокси на Antimatter, използвайки удостоверенията на версията на мобилното приложение, която вашите потребители инсталират.
- Antimatter никога не изпраща известия към пуш услугите на Mattermost, нито тестови, нито хостирани: те доставят известия само за собствените мобилни приложения на Mattermost. Ако сървърът е настроен на някой от техните адреси (като например
https://push-test.mattermost.com, който по-старите конфигурации на Mattermost използват), той не изпраща нищо и записва предупреждение при стартиране.
Новият сървър няма пуш сървър за известия, така че не изпраща пуш известия, докато не зададете адреса на вашия пуш прокси. До тогава мобилното приложение работи, но не получава известия.
Стартирайте пуш прокси
Пуш прокси се намира в репозиторията push-proxy. Нейният README обяснява как да получите двете удостоверения, които идват от акаунтите, публикуващи вашата версия на мобилното приложение:
- Android: файл на служебен акаунт на Firebase проекта, използван от вашата Android версия.
- iOS: APNs ключ за автентикация (
AuthKey_<KEY ID>.p8) на Apple разработчикския акаунт, публикуващ вашата iOS версия, заедно с неговия ключов ID и екипен ID.
Поставете ги до compose.yaml, заедно с конфигурационния файл на прокси:
push-proxy/
config/antimatter-push-proxy.json
certs/AuthKey_ABCDE12345.p8
certs/firebase-service-account.json
push-proxy/config/antimatter-push-proxy.json, с вашия bundle identifier, ключов ID и екипен 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 е iOS bundle identifier на вашата версия. ApplePushUseDevelopment е true само за версии, инсталирани от Xcode. Обажданията се активират на iPhone чрез VoIP пуш известия, които използват същия ключ и не изискват нищо допълнително тук.
Сайтът предлага готово добавление към compose файла: compose.push.example.yaml. То стартира публикувания образ 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
При стартиране журналите на прокси сървъра посочват всяка цел за изпращане, която е настроена, и записват грешка за всяка, чиито данни за удостоверяване не могат да бъдат заредени. Прокси сървърът не публикува порт: само Antimatter има достъп до него, в мрежата за композиране.
Ако нямате Docker, инсталирайте вместо това .deb или .rpm пакета на push proxy-то: вижте Пакетите за GIF услугата и push proxy.
Посочете Antimatter към прокси сървъра
В Системна конзола › Обкръжение › Сървър за изскачащи известия задайте Разрешаване на изскачащи известия на Изпращане на пуш известия през ваш собствен пуш прокси и Сървър за изскачащи известия на http://push-proxy:8066 (или HTTPS адреса на прокси-сървъра, ако той се изпълнява на друго място). Страницата не може да се запази, ако е избран този вариант, но не е зададен адрес. За да спрете изпращането на изскачащи известия, изберете Не изпращай изскачащи известия. Или чрез променливи на услугата antimatter:
AM_EMAILSETTINGS_SENDPUSHNOTIFICATIONS: "true"
AM_EMAILSETTINGS_PUSHNOTIFICATIONSERVER: http://push-proxy:8066
За проверка: влезте с мобилното приложение, поставете го в фонов режим и накарайте друга сметка да ви спомене. Ако нищо не пристигне, потърсете push в журнала на Antimatter и в журнала на прокси сървъра: те показват дали типът на устройството е неизвестен, ключът е отхвърлен или устройството принадлежи на друга версия на приложението.
Какво съдържат известията
Системна конзола › Конфигурация на сайта › Известия › Съдържание на изскачащи известия (EmailSettings.PushNotificationContents):
| Опция | Стойност |
|---|---|
| Общо описание само с името на изпращача | generic_no_channel |
| Общо описание с името на изпращача и името на канала | generic |
| Пълно съдържание на съобщението, изпратено в натоварването на известие (по подразбиране) | full |
| Пълно съдържание на съобщението, изтеглено от сървъра при получаване | id_loaded |
С id_loaded, известие, което минава през прокси сървъра, Apple и Google носят само идентификатор, а приложението изтегля съобщението от вашия сървър: текстът на съобщението никога не минава през техните услуги. Това е най-добрият избор, когато съобщенията са поверителни.
Максимум известия на канал (на страницата Сървър за изскачащи известия, TeamSettings.MaxNotificationsPerChannel, по подразбиране 1000) е максималният брой членове, които един канал може да има, за да работят споменаванията @here, @all и @channel. В по-големи канали тези споменавания и индикаторите за въвеждане са изключени.