Email και push ειδοποιήσεις
Το Antimatter στέλνει email για προσκλήσεις, επαναφορά κωδικών, επαλήθευση και μη αναγνωσμένα μηνύματα, καθώς και push ειδοποιήσεις στην κινητή εφαρμογή μέσω push proxy. Κανένα από αυτά δεν λειτουργεί μέχρι να το διαμορφώσετε.
Εξερχόμενα email (SMTP)
Το Antimatter στέλνει email μέσω ενός διακομιστή SMTP που παρέχετε εσείς: του διακομιστή αλληλογραφίας του οργανισμού σας ή μιας υπηρεσίας transactional email. Χωρίς αυτό, οι χρήστες δεν μπορούν να επαναφέρουν έναν ξεχασμένο κωδικό, τα email προσκλήσεων και επαλήθευσης δεν φτάνουν και κανείς δεν λαμβάνει email ειδοποιήσεις για μη αναγνωσμένα μηνύματα.
Διαμορφώστε το στη Κονσόλα συστήματος › Περιβάλλον › 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, όπως λέει ο πάροχός σας. Στη συνέχεια, πατήστε Δοκιμή σύνδεσης στη mesma σελίδα: το Antimatter στέλνει ένα δοκιμαστικό email στη δική σας διεύθυνση.
Μια τυπική διαμόρφωση με 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. Το αρχείο compose του ιστοτόπου τοποθετεί τον διακομιστή στο προεπιλεγμένο δίκτυο, το οποίο έχει πρόσβαση στο Internet, οπότε μπορεί να φτάσει σε έναν εξωτερικό διακομιστή SMTP.
Ρυθμίσεις αποστολέα και email ειδοποιήσεων
Στη Κονσόλα συστήματος › Διαμόρφωση Ιστοτόπου › Ειδοποιήσεις:
| Ρύθμιση | Κλειδί | Προεπιλογή |
|---|---|---|
| Ενεργοποίηση email ειδοποιήσεων | EmailSettings.SendEmailNotifications | ενεργοποιημένο |
| Εμφανιζόμενο όνομα ειδοποιήσεων | EmailSettings.FeedbackName | κενό |
| Διεύθυνση αποστολέα ειδοποιήσεων | EmailSettings.FeedbackEmail | test@example.com: αλλάξτε το |
| Διεύθυνση απάντησης ειδοποιήσεων | EmailSettings.ReplyToAddress | test@example.com: αλλάξτε το |
| Διεύθυνση ηλεκτρονικού ταχυδρομείου υποστήριξης | SupportSettings.SupportEmail | κενό |
| Διεύθυνση αποστολής στο κάτω μέρος ειδοποιήσεων | EmailSettings.FeedbackOrganization | κενό |
| Περιεχόμενο email ειδοποιήσεων | EmailSettings.EmailNotificationContentsType | Αποστολή πλήρους περιεχομένου μηνύματος (full), ή γενικής περιγραφής μόνο με το όνομα του αποστολέα (generic) |
| Ενεργοποίηση ομαδοποίησης email | EmailSettings.EnableEmailBatching | ανενεργό. Αν ενεργοποιηθεί, οι χρήστες μπορούν να επιλέξουν να λαμβάνουν τα μη αναγνωσμένα μηνύματα ομαδοποιημένα σε ένα email κάθε 15 λεπτά ή κάθε ώρα, αντί για ένα email το καθένα. |
| Χρήση ονόματος καναλιού στις ειδοποιήσεις ηλεκτρονικού ταχυδρομείου | EmailSettings.UseChannelInEmailNotifications | απενεργοποιημένη |
| Ενεργοποίηση μπάρας Προβολής (Preview Mode) | EmailSettings.EnablePreviewModeBanner | ενεργό: ενώ οι email ειδοποιήσεις είναι ανενεργές, μια μπάρα ενημερώνει τους διαχειριστές ότι τα email δεν έχουν διαμορφωθεί |
Η διεύθυνση «Από» πρέπει να είναι μία ως προς την οποία ο διακομιστής SMTP επιτρέπεται να στέλνει. Ρυθμίστε SPF και DKIM για το τομέα του, διαφορετικά τα μηνύματα μπορεί να καταλήξουν σε φακέλους ανεπιθύμητης αλληλογραφίας.
Οι ρυθμίσεις σύνδεσης που αφορούν τα ηλεκτρονικά μηνύματα (π.χ. αν τα νέα λογαριασmata πρέπει να επαληθεύουν τη διεύθυνσή τους, αν μπορούν να στέλνονται προσκλήσεις μέσω email) βρίσκονται στη σελίδα Σύνδεση και λογαριασμοί.
Ειδοποιήσεις push στην κινητή εφαρμογή
Πώς λειτουργούν οι push ειδοποιήσεις
Το Antimatter δεν επικοινωνεί ποτέ απευθείας με την Apple ή την Google. Για κάθε ειδοποίηση, καλεί έναν push proxy, ο οποίος κατέχει τα διαπιστευτήρια της κινητής εφαρμογής και προωθεί την ειδοποίηση στην Apple (APNs) για iPhone και στην Google (Firebase Cloud Messaging) για συσκευές Android. Η Apple και η Google παραδίδουν ειδοποίηση μόνο όταν στέλνεται με τα διαπιστευτήρια της εφαρμογής για την οποία προορίζεται. Έτσι, ένας push proxy λειτουργεί με μία έκδοση της κινητής εφαρμογής: αυτή των διαπιστευτηρίων που κατέχει.
- Το Antimatter δεν εκτελεί δημόσιο push proxy. Εκτελείτε εσείς τον push proxy του Antimatter, χρησιμοποιώντας τα διαπιστευτήρια της έκδοσης της κινητής εφαρμογής που εγκαθιστούν οι χρήστες σας.
- Το Antimatter δεν στέλνει ποτέ ειδοποιήσεις στις υπηρεσίες push του Mattermost, ούτε σε δοκιμαστικές ούτε σε φιλοξενούμενες: αυτές παραδίδουν ειδοποιήσεις μόνο στις δικές τους κινητές εφαρμογές. Αν ο διακομιστής ρυθμιστεί σε μία από τις διευθύνσεις τους (όπως η
https://push-test.mattermost.com, που χρησιμοποιούν παλαιότερες ρυθμίσεις Mattermost), δεν στέλνει τίποτα και καταγράφει προειδοποίηση κατά την εκκίνηση.
Ένας νέος διακομιστής δεν έχει διακομιστή push ειδοποιήσεων, οπότε δεν στέλνει push ειδοποιήσεις μέχρι να ορίσετε τη διεύθυνση του push proxy σας. Μέχρι τότε, η κινητή εφαρμογή λειτουργεί, αλλά δεν λαμβάνει ειδοποιήσεις.
Εκτέλεση του push proxy
Ο push proxy βρίσκεται στο αποθετήριο push-proxy. Το README εξηγεί πώς να αποκτήσετε τα δύο διαπιστευτήρια, τα οποία προέρχονται από τους λογαριασμούς που δημοσιεύουν την έκδοση της κινητής εφαρμογής σας:
- Android: ένα αρχείο λογαριασμού υπηρεσίας (service account) του έργου Firebase που χρησιμοποιεί η έκδοση Android.
- iOS: ένα κλειδί πιστοποίησης APNs (
AuthKey_<KEY ID>.p8) του λογαριασμού προγραμματιστή Apple που δημοσιεύει την έκδοση iOS, μαζί με το ID κλειδιού και το ID ομάδας.
Τοποθετήστε τα δίπλα στο compose.yaml, μαζί με το αρχείο ρυθμίσεων του proxy:
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 μέσω push ειδοποιήσεων VoIP, οι οποίες χρησιμοποιούν το ίδιο κλειδί και δεν απαιτούν κάτι άλλο εδώ.
Η τοποθεσία περιλαμβάνει έτοιμη προσθήκη στο αρχείο σύνθεσης, 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
Κατά την εκκίνηση, το αρχείο καταγραφής της proxy αναφέρει κάθε στόχο push που έχει ρυθμίσει και καταγράφει σφάλμα για όσους δεν μπορούν να φορτωθούν τα διαπιστευτήριά τους. Η proxy δεν εκθέτει καμία θύρα: μόνο το Antimatter επικοινωνεί μαζί της, μέσω του δικτύου σύνθεσης.
Χωρίς Docker, εγκαταστήστε αντίστοιχα το πακέτο .deb ή .rpm του push proxy: δείτε Τα πακέτα της υπηρεσίας GIF και του push proxy.
Καθορίστε το Antimatter προς την proxy
Στην Κονσόλα συστήματος › Περιβάλλον › Διακομιστής push ειδοποιήσεων, ορίστε το Ενεργοποίηση push ειδοποιήσεων σε Αποστολή ειδοποιήσεων push μέσω δικής σας push proxy και το Διακομιστής push ειδοποιήσεων σε http://push-proxy:8066 (ή τη διεύθυνση HTTPS της proxy, αν εκτελείται αλλού). Η σελίδα δεν μπορεί να αποθηκευτεί με αυτή την επιλογή και χωρίς διεύθυνση. Για να σταματήσετε την αποστολή push ειδοποιήσεων, επιλέξτε Να μην στέλνονται push ειδοποιήσεις. Εναλλακτικά, με μεταβλητές στην υπηρεσία antimatter:
AM_EMAILSETTINGS_SENDPUSHNOTIFICATIONS: "true"
AM_EMAILSETTINGS_PUSHNOTIFICATIONSERVER: http://push-proxy:8066
Για έλεγχο: συνδεθείτε με την κινητή εφαρμογή, βάλτε την σε segundo plano και ζητήστε από έναν άλλο λογαριασμό να σας αναφέρει. Αν δεν φτάσει τίποτα, αναζητήστε το push στο αρχείο καταγραφής του Antimatter και στο αρχείο καταγραφής της proxy: θα σας πουν αν ο τύπος συσκευής είναι άγνωστος, αν απορρίφθηκε ένα κλειδί ή αν η συσκευή ανήκει σε άλλη έκδοση της εφαρμογής.
Τι περιέχουν οι ειδοποιήσεις
Κονσόλα συστήματος › Διαμόρφωση Ιστοτόπου › Ειδοποιήσεις › Περιεχόμενο push ειδοποιήσεων (EmailSettings.PushNotificationContents):
| Επιλογή | Τιμή |
|---|---|
| Γενική περιγραφή μόνο με το όνομα του αποστολέα | generic_no_channel |
| Γενική περιγραφή με το όνομα του αποστολέα και του καναλιού | generic |
| Πλήρες περιεχόμενο μηνύματος που αποστέλλεται στο φορτίο της ειδοποίησης (προεπιλογή) | full |
| Πλήρες περιεχόμενο μηνύματος που λαμβάνεται από τον διακομιστή κατά την παραλαβή | id_loaded |
Με id_loaded, η ειδοποίηση που περνάει από την proxy, την Apple και την Google περιέχει μόνο ένα id, και η εφαρμογή λαμβάνει το μήνυμα από τον δικό σας διακομιστή: το κείμενο του μηνύματος δεν περνά ποτέ από τις υπηρεσίες τους. Είναι η καλύτερη επιλογή όταν τα μηνύματα είναι εμπιστευτικά.
Το Όριο ειδοποιήσεων μεγάλου καναλιού, στη σελίδα Διακομιστή push ειδοποιήσεων, (TeamSettings.MaxNotificationsPerChannel, 1000 ως προεπιλογή) είναι ο μέγιστος αριθμός μελών που μπορεί να έχει ένα κανάλι για να λειτουργούν οι αναφορές @here, @all και @channel. Σε μεγαλύτερα κανάλια, αυτές οι αναφορές και οι δείκτες πληκτρολόγησης απενεργοποιούνται.