我正在尝试在树莓派上设置自动电子邮件,但不会协商STARTTLS会话。
ssmtp.conf如下-
root=postmaster
mailhub={mailserver}:587
AuthUser={username}
AuthPass={password}
UseTLS=TES
UseSTARTTLS=YES
hostname={hostname}
FromLineOverride=YES
DEBUG=YES
没有重塑。我在mail.err中遇到的错误如下-
sSMTP[13572]: Cannot open {mailserver}:587
在syslog中,我得到以下几行-
sSMTP[13119]: Creating SSL connection to host
sSMTP[13119]: 220 {mailserver} ESMTP Postfix
sSMTP[13119]: EHLO {hostname}
sSMTP[13119]: 250 DSN
sSMTP[13119]: STARTTLS
sSMTP[13119]: 220 2.0.0 Ready to start TLS
sSMTP[13119]: SSL connection using (null)
sSMTP[13119]: Cannot open {mailserver}:587
它就死了。我尝试调整主机名参数UseTLS和UseSTARTTLS无效。我还尝试设置在类似(但很旧)的论坛帖子中发布的TLS_CA_File和TLS_CA_Dir参数,但这些参数似乎根本不起作用-
sSMTP[13572]: Unable to set TLS_CA_Dir="/etc/ssl/certs/"
和
sSMTP[12962]: Unable to set TLS_CA_FILE="/etc/ssl/certs/ca-certificates.crt"
服务器端我得到这个-
postfix/submission/smtpd[7557]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled
postfix/submission/smtpd[7557]: connect from unknown[{ip}]
postfix/submission/smtpd[7557]: SSL_accept error from unknown[{ip}]: -1
postfix/submission/smtpd[7557]: warning: TLS library problem: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol:s23_srvr.c:649:
postfix/submission/smtpd[7557]: lost connection after STARTTLS from unknown[{ip}]
postfix/submission/smtpd[7557]: disconnect from unknown[{ip}]
但是,当我在Ubuntu 18.04计算机或台式机电子邮件客户端(如Thunderbird)上尝试相同的配置时,一切工作正常。关于为什么它无法从Pi连接到服务器的任何想法?
ssmtp是无需维护的软件,并且具有与TLS相关的已知问题。Debian几个月前从存储库中完全删除了ssmtp,Ubuntu将紧随其后。
它在Ubuntu / Debian中工作的唯一原因是Debian曾经应用了一个补丁(出于许可的原因将ssmtp移植到GnuTLS,并幸运地解决了原始代码所具有的错误)。
(在您的情况下,我猜该错误是由客户端发送过时的“与SSLv2兼容”的ClientHello消息引起的,该消息已超过其有效日期,并且在Postfix服务器上不再被OpenSSL识别。)
使用TLS_CA_*
参数的能力是Debian添加的另一个补丁–原始的ssmtp软件没有这些选项,因为它根本不执行证书验证。
请改用msmtp。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句