我想使用 Thunderbird 客户端通过在端口 25 (SMTP) 上运行的 Postfix 服务器发送邮件。
我想要一个经过身份验证和加密的连接。
我遵循了这些文档:
- http://www.postfix.org/SASL_README.html#auxprop_sasldb
- https://wiki.debian.org/PostfixAndSASL#Using_auxprop_with_sasldb
配置很容易:
$ sudo apt install libsasl2-modules sasl2-bin
$ sudo saslpasswd2 -c -u example.com yugiohjcj
$ sudo sasldblistusers2
$ sudo vim /etc/postfix/sasl/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5
$ sudo vim /etc/postfix/main.cf
# SASL
cyrus_sasl_config_path = /etc/postfix/sasl
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
$ sudo bash /etc/init.d/postfix restart
以下是我配置 Thunderbird 的方法:
- 编辑 > 帐户设置 > 发送服务器 (SMTP)
- 服务器名称:example.com
- 端口:25
- 连接安全:STARTTLS
- 认证方式:普通密码
- 用户名:[电子邮件受保护]
当邮件从 Thunderbird 发送时,我可以在 Postfix 日志中看到以下内容:
postfix/smtpd[103272]: connect from 1.2.3.4.subs.proxad.net[1.2.3.4]
postfix/smtpd[103272]: 39AB821458: client=1.2.3.4.subs.proxad.net[1.2.3.4], sasl_method=PLAIN, [email protected]
postfix/cleanup[103276]: 39AB821458: message-id=<[email protected]>
opendkim[72092]: 39AB821458: DKIM-Signature field added (s=2023, d=example.com)
postfix/qmgr[102890]: 39AB821458: from=<[email protected]>, size=690, nrcpt=1 (queue active)
postfix/smtpd[103272]: disconnect from 1.2.3.4.subs.proxad.net[1.2.3.4] ehlo=2 starttls=1 auth=1 mail=1 rcpt=1 data=1 quit=1 commands=8
postfix/smtp[103277]: 39AB821458: to=<[email protected]>, relay=gmail-smtp-in.l.google.com[64.233.184.26]:25, delay=0.7, delays=0.08/0.01/0.31/0.3, dsn=2.0.0, status=sent (250 2.0.0 OK 1678874625 bh21-20020a05600c3d1500b003da0d302eb6si1264054wmb.27 - gsmtp)
postfix/qmgr[102890]: 39AB821458: removed
因此,邮件在我的 Postfix 服务器上收到,然后按预期转发到我的 @gmail.com 地址(我~/.forward
为此使用一个文件)。
但是,我没有看到任何有关加密的内容。
我与 Postfix 服务器的连接是否已加密?
如果没有,请问我该如何修复?
谢谢。
此致。
答案1
postfix/smtpd[103272]: connect from 1.2.3.4.subs.proxad.net[1.2.3.4]
postfix/smtpd[103272]: 39AB821458: client=1.2.3.4.subs.proxad.net[1.2.3.4], sasl_method=PLAIN, [email protected]
[...]
postfix/smtpd[103272]: disconnect from 1.2.3.4.subs.proxad.net[1.2.3.4] ehlo=2 starttls=1 [...]
此处,starttls=1
确认 TLS 对连接有效。
您可能需要将以下设置添加到 Postfixmain.cf
配置中:
smtpd_sasl_security_options = noanonymous, noplaintext
smtpd_sasl_tls_security_options = noanonymous
这限制了仅将未散列密码(LOGIN 和 PLAIN)传递到 TLS 加密连接的身份验证方法;在未加密的连接上,仅可接受以散列形式传输密码的 CRAM-MD5 和 DIGEST-MD5。
或者,您可以设置
smtpd_tls_auth_only = yes
仅当首先建立 TLS 加密时才允许身份验证。
答案2
Connection Security: STARTTLS
你没事。这表示 Thunderbird 必须加密与您的服务器的通信。
这条线证实了这一点;请参阅starttls=1
:
postfix/smtpd[103272]: disconnect from 1.2.3.4.subs.proxad.net[1.2.3.4] ehlo=2 starttls=1 auth=1 mail=1 rcpt=1 data=1 quit=1 commands=8
不过,您的日志文件中并未说明您与 Google 入站 SMTP 服务器的连接是否已加密。