如何配置 Postfix 以使用 ProtonMail Bridge 发送电子邮件?

如何配置 Postfix 以使用 ProtonMail Bridge 发送电子邮件?

我有一台 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/

这是我的配置

安装 Postfix

$ sudo apt install postfix

在“系统邮件名称”处输入域名mydomain.com,其余保持默认

配置 Postfix

$ 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 [email protected]: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

重启 Postfix

$ sudo systemctl restart postfix

检查状态 Postfix

$ sudo systemctl status postfix

安装 mailutils

$ sudo apt install mailutils

测试发送电子邮件

$ echo "Contenu du mail" | mail -s "Titre du mail" [email protected] -aFrom:[email protected]

问题是我没有收到任何电子邮件,也没有错误消息。我的设置有什么问题?

以下是有效的 Drupal 8 配置:

在此处输入图片描述

答案1

您省略了告诉 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。但是,您应该从邮件日志中重现相关行,以准确诊断问题,否则一切都只是猜测。

相关内容