Sähköposti- ja push-ilmoitukset
Antimatter lähettää sähköpostia kutsuille, salasanan nollauksille, vahvistuksille ja jääneille viesteille sekä push-ilmoituksia mobiilisovellukseen push-välityspalvelimen kautta. Kumpikaan ei toimi, ennen kuin määrität sen.
Lähetysähköposti (SMTP)
Antimatter lähettää sähköpostia sinun tarjoamasi SMTP-palvelimen kautta: organisaationi postipalvelimen tai transaktio-sähköpostipalvelun. Ilman sitä ihmiset eivät voi nollata unohdetun salasanan, sähköpostikutsut ja -vahvistukset eivät saavu, eikä kukaan saa sähköpostilmoituksia jääneistä viesteistä.
Määritä se Järjestelmäkonsoli › Ympäristö › SMTP -osiossa tai muuttujilla:
| Asetus | Avain ja muuttuja | Oletusarvo |
|---|---|---|
| SMTP-palvelin | EmailSettings.SMTPServer, AM_EMAILSETTINGS_SMTPSERVER | localhost |
| SMTP-palvelimen portti | EmailSettings.SMTPPort, AM_EMAILSETTINGS_SMTPPORT | 10025 |
| Ota SMTP-tunnistautuminen käyttöön | EmailSettings.EnableSMTPAuth, AM_EMAILSETTINGS_ENABLESMTPAUTH | pois ilman yhteyden turvallisuutta, käytössä sen kanssa |
| SMTP-palvelimen käyttäjätunnus | EmailSettings.SMTPUsername, AM_EMAILSETTINGS_SMTPUSERNAME | tyhjä |
| SMTP-palvelimen salasana | EmailSettings.SMTPPassword, AM_EMAILSETTINGS_SMTPPASSWORD | tyhjä |
| Yhteyden turvallisuus | EmailSettings.ConnectionSecurity, AM_EMAILSETTINGS_CONNECTIONSECURITY | Ei mitään (tyhjä); tai TLS tai STARTTLS |
| Ohita palvelimen todistuksen tarkistus | EmailSettings.SkipServerCertificateVerification | pois. Jätä se pois tuotantoympäristössä. |
Käytä STARTTLS-protokollaa portissa 587 tai TLS-protokollaa portissa 465 palveluntarjoajasi ohjeiden mukaisesti. Klikkaa sitten Testaa yhteys samalla sivulla: Antimatter lähettää testisähköpostin omaan osoitteeseesi.
Tyypillinen asennus Docker Compose -ympäristössä, tiedostossa compose.override.yaml compose.yaml:n viereen:
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
Aseta SMTP_PASSWORD tiedostoon .env. Sivuston compose-tiedosto asettaa palvelimen oletusverkkoon, jolla on Internet-yhteys, joten se voi tavoittaa ulkoisen SMTP-palvelimen.
Lähettäjän ja ilmoitussähköpostin asetukset
Osa Järjestelmäkonsoli › Sivuston asetukset › Ilmoitukset:
| Asetus | Avain | Oletusarvo |
|---|---|---|
| Ota sähköpostilmoitukset käyttöön | EmailSettings.SendEmailNotifications | on |
| Ilmoitusten näyttönimi | EmailSettings.FeedbackName | tyhjä |
| Ilmoitusten lähettäjän osoite | EmailSettings.FeedbackEmail | test@example.com: muuta se |
| Ilmoitusten vastausosoite | EmailSettings.ReplyToAddress | test@example.com: muuta se |
| Tukisähköpostiosoite | SupportSettings.SupportEmail | tyhjä |
| Ilmoitusten alarekin osoite | EmailSettings.FeedbackOrganization | tyhjä |
| Sähköpostilmoitusten sisältö | EmailSettings.EmailNotificationContentsType | Lähetä koko viestin sisältö (full) tai yleiskuvaus, jossa on vain lähettäjän nimi (generic) |
| Sähköpostien yhdistäminen | EmailSettings.EnableEmailBatching | pois. Käytössä ollessa ihmiset voivat valita, että jääneet viestit ryhmitellään yhteen sähköpostiin 15 minuutin tai tunnin välein, sen sijaan että jokaisesta viestistä lähetettäisiin oma sähköpostinsa. |
| Käytä kanavan nimeä sähköposti-ilmoituksissa | EmailSettings.UseChannelInEmailNotifications | Ei käytössä |
| Ota esikatselutilan banneri käyttöön | EmailSettings.EnablePreviewModeBanner | käytössä: kun sähköpostilmoitukset ovat pois käytöstä, banneri kertoo ylläpitäjille, ettei sähköpostia ole määritetty |
Lähettäjän osoitteen (From) on oltava sellainen, jonka lähettämiseen SMTP-palvelimellasi on lupa. Määritä SPF- ja DKIM-tunnistautuminen palvelimen verkkotunnukselle, muuten sähköpostit voivat päätyä roskapostiin.
Sähköpostiin liittyvät kirjautumisasetukset (esim. uuden tilin osoitteen vahvistus ja kutsujen lähettäminen sähköpostilla) löytyvät kohdasta Kirjautuminen ja tilit.
Push-ilmoitukset mobiilisovellukseen
Miten push-ilmoitukset toimivat
Antimatter ei koskaan kommunikoi Applen tai Googlen kanssa suoraan. Jokaiselle ilmoitukselle se kutsuu push-välityspalvelinta, joka säilyttää mobiilisovelluksen tunnistetiedot ja välittää ilmoituksen Applen (APNs) kautta iPhoneille ja Googlen (Firebase Cloud Messaging) kautta Android-puhelimille. Apple ja Google toimittavat ilmoituksen vain, jos se on lähetetty sen sovelluksen tunnistetiedoilla, jolle se on tarkoitettu. Push-välityspalvelin siis toimii yhdellä mobiilisovelluksen versioilla: sen, jonka tunnistetiedot se säilyttää.
- Antimatter ei ylläpitä julkista push-välityspalvelinta. Sinä ylläpidät Antimatterin push-välityspalvelinta itse käyttäen niitä mobiilisovelluksen version tunnistetietoja, jotka käyttäjät asennavat.
- Antimatter ei koskaan lähetä ilmoituksia Mattermostin push-palveluihin, olipa kyseessä testipalvelu tai hostattu palvelu: ne toimittavat ilmoitukset vain Mattermostin omiin mobiilisovelluksiin. Jos palvelin on asetettu johonkin näistä osoitteista (kuten
https://push-test.mattermost.com, jota vanhemmat Mattermost-asetukset käyttävät), se ei lähetä mitään ja kirjaa varoituksen käynnistyksen yhteydessä.
Uudella palvelimella ei ole push-ilmoituspalvelinta, joten se ei lähetä push-ilmoituksia, kunnes asetat push-välityspalvelimesi osoitteen. Siihen asti mobiilisovellus toimii, mutta ei vastaanota ilmoituksia.
Push-välityspalvelimen käynnistys
Push-välityspalvelin sijaitsee push-proxy-säilössä. Sen README-tiedosto ohjeistaa, miten hankit kaksi tunnistetietoa, jotka tulevat tilistä, jolla mobiilisovelluksesi versio julkaisiin:
- Android: Firebase-projektin palvelu-tilin tiedosto, jota Android-versiosi käyttää.
- iOS: APNs-tunnistautumistunnus (
AuthKey_<KEY ID>.p8) Apple Developer -tililtä, jolla iOS-versiosi julkaisiin, sekä sen tunnus-ID ja tiimi-ID.
Aseta ne compose.yaml:n viereen, yhdessä välityspalvelimen asetustiedoston kanssa:
push-proxy/
config/antimatter-push-proxy.json
certs/AuthKey_ABCDE12345.p8
certs/firebase-service-account.json
push-proxy/config/antimatter-push-proxy.json, jossa on paketin tunniste, tunnus-ID ja tiimi-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 on iOS-versiosi paketin tunniste. ApplePushUseDevelopment on true vain Xcode:sta asennetuille versioille. Puhelut soittavat iPhoneille VoIP-push-ilmoituksien kautta, jotka käyttävät samaa tunnusta ja eivät vaadi tässä mitään lisäyksiä.
Sivustolla on valmis lisäys compose-tiedostoon, compose.push.example.yaml. Se suorittaa julkaistun kuvan, 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
Käynnistyessään välityspalvelimen lokitiedosto nimetää jokaisen asettaman push-kohteen ja loki virheen, jos sen todennustietoja ei voi ladata. Välityspalvelin ei julkista porttia: vain Antimatter pääsee siihen käsiksi compose-verkossa.
Jos Dockeria ei käytetä, asenna push-välityspalvelimen .deb- tai .rpm-paketti sen sijaan: katso GIF-palvelu ja push-välityspalvelimen paketit.
Osoita Antimatter välityspalvelimeen
Aseta Järjestelmäkonsoli › Ympäristö › Push-ilmoituspalvelin -sivulla Ota push-ilmoitukset käyttöön -asetukseksi Lähetä push-ilmoitukset oman push-välityspalvelimen kautta ja Push-ilmoituspalvelin -arvoksi http://push-proxy:8066 (tai välityspalvelimen HTTPS-osoite, jos se ajetaan toisessa paikassa). Sivua ei voi tallentaa, jos tämä vaihtoehto on valittu ja osoitetta ei ole. Voit lopettaa push-ilmoitusten lähettämisen valitsemalla Älä lähetä push-ilmoituksia. Vaihtoehtoisesti voit käyttää muuttujia antimatter-palvelussa:
AM_EMAILSETTINGS_SENDPUSHNOTIFICATIONS: "true"
AM_EMAILSETTINGS_PUSHNOTIFICATIONSERVER: http://push-proxy:8066
Tarkistus: Kirjaudu sisään mobiilisovelluksella, vie se taustalle ja anna toisen tilin mainita sinut. Jos mitään ei saavuta, etsi push Antimatterin lokista ja välityspalvelimen lokista: ne kertovat, onko laitetyyppi tuntematon, onko avain hylätty vai kuuluuko laite toiseen sovellusversioon.
Ilmoitusten sisältö
Järjestelmäkonsoli › Sivuston asetukset › Ilmoitukset › Push-ilmoitusten sisältö (EmailSettings.PushNotificationContents):
| Vaihtoehto | Arvo |
|---|---|
| Yleiskuvaus, jossa on vain lähettäjän nimi | generic_no_channel |
| Yleiskuvaus, jossa on lähettäjän ja kanavan nimet | generic |
| Koko viestin sisältö, joka lähetetään ilmoituksen kuormana (oletus) | full |
| Koko viestin sisältö, joka haetaan palvelimelta vastaanotettaessa | id_loaded |
Arvolla id_loaded välityspalvelimen, Applen ja Googlen kautta kulkeva ilmoitus sisältää vain id:n, ja sovellus hakee viestin omalta palvelimeltasi: viestin teksti ei koskaan kulje heidän palvelujensa kautta. Se on paras valinta, kun viestit ovat luottamuksellisia.
Suuren kanavan ilmoitusraja Push-välityspalvelin-sivulla (TeamSettings.MaxNotificationsPerChannel, oletuksena 1000) määrittää suurimman jäsenmäärän, jonka kanavassa voi olla, jotta @here, @all ja @channel-toiminnot toimivat. Suuremmissa kanavissa nämä maininnat ja kirjoitusilmaisimet poistetaan käytöstä.