E-mel dan pemberitahuan push
Antimatter menghantar e-mel untuk jemputan, tetapan semula kata laluan, pengesahan dan mesej yang terlepas, serta pemberitahuan push ke aplikasi mudah alih melalui proksi push. Tiada satu pun berfungsi sehingga anda mengkonfigurasikannya.
E-mel keluar (SMTP)
Antimatter menghantar e-mel melalui pelayan SMTP yang anda sediakan: pelayan mel organisasi anda, atau perkhidmatan e-mel transaksional. Tanpanya, orang tidak boleh menetapkan semula kata laluan yang terlupa, jemputan e-mel dan pengesahan tidak sampai, dan tiada siapa yang menerima pemberitahuan e-mel untuk mesej yang terlepas.
Tetapkannya dalam Konsol Sistem › Persekitaran › SMTP, atau dengan pemboleh ubah:
| Tetapan | Kunci dan pemboleh ubah | Lalai |
|---|---|---|
| Pelayan SMTP | EmailSettings.SMTPServer, AM_EMAILSETTINGS_SMTPSERVER | localhost |
| Port Pelayan SMTP | EmailSettings.SMTPPort, AM_EMAILSETTINGS_SMTPPORT | 10025 |
| Dayakan Pengesahan SMTP | EmailSettings.EnableSMTPAuth, AM_EMAILSETTINGS_ENABLESMTPAUTH | off tanpa keselamatan sambungan, on dengan keselamatan |
| Nama Pengguna Pelayan SMTP | EmailSettings.SMTPUsername, AM_EMAILSETTINGS_SMTPUSERNAME | kosong |
| Kata Laluan Pelayan SMTP | EmailSettings.SMTPPassword, AM_EMAILSETTINGS_SMTPPASSWORD | kosong |
| Keselamatan Sambungan | EmailSettings.ConnectionSecurity, AM_EMAILSETTINGS_CONNECTIONSECURITY | None (kosong); atau TLS atau STARTTLS |
| Lewati Pengesahan Sijil Pelayan | EmailSettings.SkipServerCertificateVerification | off. Biarkan ia off dalam pengeluaran. |
Gunakan STARTTLS pada port 587 atau TLS pada port 465, seperti yang dinyatakan oleh penderma anda. Kemudian klik Uji Sambungan pada halaman yang sama: Antimatter menghantar e-mel ujian ke alamat anda sendiri.
Penetapan tipikal dengan Docker Compose, dalam compose.override.yaml bersebelahan 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
Letakkan SMTP_PASSWORD dalam .env. Fail compose laman web meletakkan pelayan pada rangkaian lalai, yang mempunyai akses ke Internet, jadi ia boleh mencapai pelayan SMTP luaran.
Penetapan e-mel penghantar dan pemberitahuan
Dalam Konsol Sistem › Konfigurasi Laman › Pemberitahuan:
| Tetapan | Kunci | Lalai |
|---|---|---|
| Aktifkan Pemberitahuan E-mel | EmailSettings.SendEmailNotifications | hidup |
| Nama Paparan Pemberitahuan | EmailSettings.FeedbackName | kosong |
| Alamat Dari Pemberitahuan | EmailSettings.FeedbackEmail | test@example.com: ubah ia |
| Alamat Balas-To Pemberitahuan | EmailSettings.ReplyToAddress | test@example.com: ubah ia |
| Alamat E-mel Sokongan | SupportSettings.SupportEmail | kosong |
| Alamat Pos Kaki Pemberitahuan | EmailSettings.FeedbackOrganization | kosong |
| Kandungan Pemberitahuan E-mel | EmailSettings.EmailNotificationContentsType | Hantar kandungan mesej penuh (full), atau penerangan umum dengan hanya nama penghantar (generic) |
| Aktifkan Pengumpulan E-mel | EmailSettings.EnableEmailBatching | off. On, orang boleh memilih untuk menerima mesej yang terlepas yang dikelompokkan dalam satu e-mel setiap 15 minit atau setiap jam, bukannya satu e-mel setiap satu. |
| Gunakan Nama Saluran dalam Pemberitahuan E-mel | EmailSettings.UseChannelInEmailNotifications | Tutup |
| Aktifkan Banner Mod Pratonton | EmailSettings.EnablePreviewModeBanner | on: semasa pemberitahuan e-mel dimatikan, banner memberitahu pentadbir bahawa e-mel tidak dikonfigurasi |
Alamat From mestilah satu yang dibenarkan oleh pelayan SMTP anda untuk dihantar; tetapkan SPF dan DKIM untuk domainnya, atau e-mel mungkin akan masuk ke folder spam.
Tetapan log masuk yang berkaitan dengan e-mel (sama ada akaun baharu mesti mengesahkan alamat mereka, sama ada jemputan boleh dihantar melalui e-mel) terdapat dalam Log masuk dan akaun.
Pemberitahuan push ke aplikasi mudah alih
Cara push berfungsi
Antimatter tidak pernah berinteraksi terus dengan Apple atau Google. Untuk setiap pemberitahuan, ia memanggil proxy push, yang memegang kelayakan aplikasi mudah alih dan meneruskan pemberitahuan ke Apple (APNs) untuk iPhone dan ke Google (Firebase Cloud Messaging) untuk telefon Android. Apple dan Google hanya menyampaikan pemberitahuan apabila ia dihantar dengan kelayakan aplikasi yang berkenaan. Oleh itu, proxy push berfungsi dengan satu binaan aplikasi mudah alih: iaitu binaan yang kelayakannya dipegang.
- Antimatter tidak menjalankan proxy push awam. Anda menjalankan proxy push Antimatter sendiri, dengan kelayakan binaan aplikasi mudah alih yang dipasang oleh pengguna anda.
- Antimatter tidak pernah menghantar pemberitahuan ke perkhidmatan push Mattermost, sama ada ujian atau hosted: mereka hanya menyampaikan ke aplikasi mudah alih Mattermost sendiri. Jika pelayan diset kepada salah satu alamat mereka (seperti
https://push-test.mattermost.com, yang digunakan oleh konfigurasi Mattermost yang lebih lama), ia tidak menghantar apa-apa dan merekod amaran semasa permulaan.
Pelayan baharu tidak mempunyai pelayan pemberitahuan push, jadi ia tidak menghantar pemberitahuan push sehingga anda menetapkan alamat proxy push anda. Sehingga itu, aplikasi mudah alih berfungsi tetapi tidak menerima pemberitahuan.
Jalankan proxy push
Proxy push terdapat dalam repositori push-proxy. README-nya menerangkan cara untuk mendapatkan dua kelayakan, yang datang dari akaun yang menerbitkan binaan aplikasi mudah alih anda:
- Android: fail akaun perkhidmatan projek Firebase yang digunakan oleh binaan Android anda.
- iOS: kunci pengesahan APNs (
AuthKey_<KEY ID>.p8) dari akaun pembangun Apple yang menerbitkan binaan iOS anda, dengan ID kunci dan ID pasukannya.
Letakkan mereka di sebelah compose.yaml, dengan fail konfigurasi proxy:
push-proxy/
config/antimatter-push-proxy.json
certs/AuthKey_ABCDE12345.p8
certs/firebase-service-account.json
push-proxy/config/antimatter-push-proxy.json, dengan pengenal pasti bundel, ID kunci dan ID pasukan anda:
{
"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 ialah pengenal pasti bundel iOS binaan anda. ApplePushUseDevelopment ialah true hanya untuk binaan yang dipasang dari Xcode. Panggilan berbunyi pada iPhone melalui push VoIP, yang menggunakan kunci yang sama dan tidak memerlukan apa-apa lagi di sini.
Laman web ini mempunyai penambahan sedia ada untuk fail compose, compose.push.example.yaml. Ia menjalankan imej yang diterbitkan, 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
Pada permulaan, log proksi menamakan setiap sasaran push yang diset, dan merekod ralat untuk mana-mana yang kredentialnya tidak dapat dimuatkan. Proksi tidak menerbitkan port: hanya Antimatter yang boleh mengaksesnya, melalui rangkaian compose.
Tanpa Docker, pasang pakej .deb atau .rpm proksi push sebagai gantinya: lihat Pakej perkhidmatan GIF dan proksi push.
Tunjuk Antimatter ke proksi
Di Konsol Sistem › Persekitaran › Pelayan Pemberitahuan Dorong, tetapkan Aktifkan Pemberitahuan Tolak kepada Hantar notifikasi push melalui proksi push anda sendiri, dan Pelayan Pemberitahuan Dorong kepada http://push-proxy:8066 (atau alamat HTTPS proksi jika ia berjalan di tempat lain). Laman ini tidak boleh disimpan dengan pilihan ini dan tiada alamat. Untuk berhenti menghantar pemberitahuan tolak, pilih Jangan hantar pemberitahuan tolak. Atau dengan pemboleh ubah pada perkhidmatan antimatter:
AM_EMAILSETTINGS_SENDPUSHNOTIFICATIONS: "true"
AM_EMAILSETTINGS_PUSHNOTIFICATIONSERVER: http://push-proxy:8066
Untuk semak: log masuk dengan aplikasi mudah alih, letakkannya di latar belakang dan minta akaun lain menyebut anda. Jika tiada apa yang diterima, cari push dalam log Antimatter dan log proksi: ia menyatakan sama ada jenis peranti tidak diketahui, kunci ditolak, atau peranti itu milik binaan aplikasi lain.
Apa yang dikandungi oleh pemberitahuan
Konsol Sistem › Konfigurasi Laman › Pemberitahuan › Kandungan Pemberitahuan Tolakan (EmailSettings.PushNotificationContents):
| Pilihan | Nilai |
|---|---|
| Penerangan umum dengan hanya nama penghantar | generic_no_channel |
| Penerangan umum dengan nama penghantar dan saluran | generic |
| Kandungan mesej penuh yang dihantar dalam muatan pemberitahuan (lalai) | full |
| Kandungan mesej penuh yang diambil dari pelayan pada penerimaan | id_loaded |
Dengan id_loaded, pemberitahuan yang melalui proksi, Apple dan Google hanya membawa id, dan aplikasi mengambil mesej dari pelayan anda: teks mesej tidak pernah melalui perkhidmatan mereka. Ia adalah pilihan terbaik apabila mesej adalah sulit.
Ambang Pemberitahuan Saluran Besar, pada halaman Pelayan Pemberitahuan Dorong, (TeamSettings.MaxNotificationsPerChannel, 1000 secara lalai) ialah bilangan ahli terbesar yang boleh dimiliki oleh saluran untuk @here, @all dan @channel berfungsi. Dalam saluran yang lebih besar, sebutan-sebutan ini dan penunjuk menaip dimatikan.