Ubuntu

如何配置 Postfix 以使用 ProtonMail Bridge 發送電子郵件?

  • August 17, 2020

我有一個 Ubuntu 20.04 伺服器,我按照本教程安裝 ProtonMail Bridge:

https://pychao.com/2020/06/10/update-on-using-protonmail-bridge-on-headless-wordpress-linux-servers/

ProtonMail 使用者需要這個額外實用程序的原因是,對於出站電子郵件,ProtonMail 在將電子郵件移交給發送伺服器之前對使用者的電子郵件內容進行加密。而對於入站郵件,ProtonMail 在下載郵件後為使用者解密郵件內容,因此當使用者打開收到的郵件時,內容是可讀的。在使用 ProtonMail 的線上界面時,一切都在幕後完成。使用者只需像在 Gmail 上一樣編寫/閱讀電子郵件等。但是如果使用者想在本地電腦上使用離線電子郵件客戶端,那麼這些客戶端在與 ProtonMail 的伺服器進行通信之前/之後缺乏加密/解密電子郵件的功能(請參閱注1)。這就是 ProtonMail 提供名為 Bridge 的實用程序的原因。

簡而言之,ProtonMail Bridge 在本地機器上創建了虛假的 IMAP/SMTP 伺服器。並且使用者在他們的離線電子郵件客戶端中使用這些虛假的本地伺服器進行 IMAP/SMTP 設置。當離線客戶端嘗試與電子郵件伺服器進行通信時,它們實際上是在與假本地伺服器進行通信。接下來,本地伺服器執行加密/解密任務,然後與真正的 ProtonMail 伺服器通信。

欲知更多詳情,請閱讀 ProtonMai Bridge 的介紹。這篇文章不打算處理 Bridge 的使用。相反,這篇文章試圖解決在無頭(即,未連接到任何物理監視器)Linux 環境中使用 Bridge 時出現的問題。

我的伺服器上有一個 Drupal 8 站點,它使用 ProtonMail Bridge 正確發送電子郵件。

現在我希望 Postfix 使用 ProtonMail Bridge 發送伺服器電子郵件(Logwatch,Monit,…)。

我按照以下教程安裝和配置 Postfix :

https://devanswers.co/configure-postfix-to-use-gmail-smtp-on-ubuntu-16-04-digitalocean-droplet/

這是我的配置

安裝後綴

$ sudo apt install postfix

在“系統郵件名稱”處輸入域 mydomain.com,其餘部分預設保留

配置後綴

$ sudo nano /etc/postfix/main.cf

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = ov-hjhjhjhj.kjkjkjj.ch
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname, mydomaine.com, ov-b2bbd0.infomaniak.ch, localhost.infomaniak.ch, localhost
relayhost = [127.0.0.1]:1025
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
inet_protocols = all

創建 sasl_passwd 文件以儲存憑據

$ sudo nano /etc/postfix/sasl_passwd

[127.0.0.1]:1025 contact@mydomaine.com:password

ProtonMail Bridge 中的使用資訊

創建雜湊數據庫文件

$ sudo postmap /etc/postfix/sasl_passwd

安全憑證

$ sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
$ sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

重啟後綴

$ sudo systemctl restart postfix

檢查狀態後綴

$ sudo systemctl status postfix

安裝 mailutils

$ sudo apt install mailutils

測試發送電子郵件

$ echo "Contenu du mail" | mail -s "Titre du mail" contact@mydomaine2.fr -aFrom:contact@mydomaine.com

問題是我沒有收到任何電子郵件,也沒有錯誤消息。我的設置有什麼問題?

這是有效的 Drupal 8 配置:

在此處輸入圖像描述

您已經省略了告訴 postfix 在發送郵件時進行身份驗證的行,這些行在您引用的 postfix 教程中。因此,您的sasl_passwd文件將被忽略。

至少你應該有

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous

如果這些還沒有在master.cf. 但是,您應該從郵件日誌中重現相關行以準確診斷問題,否則一切都是猜測。

引用自:https://serverfault.com/questions/1029445