我正在尝试使用 msmtp 来处理电子邮件(我曾经使用 fetchmail+procmail 来收发邮件,使用 msmtp 来发送邮件---尝试恢复它),但是在发送到不同的主机时我遇到了同样的错误(假设它是我的 .msmtprc)。
错误信息是:“ errormsg='the server sent an empty reply' exitcode=EX_PROTOCOL
”
我的 .msmtprc(略有编辑)
# Set default values
defaults
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile /home/jim/.msmtp.log
# [email protected]
account [email protected]
host mail.jdgblogs.com
port 465
from [email protected]
user [email protected]
password (is listed here)
我的电子邮件服务器的详细信息是从我的托管公司提供的我的帐户信息中复制而来的,我使用 msmptp 来做到这一点(但那已经是很长时间了,而且另一台计算机运行着不同的 Linux。我也用证书验证了文件。
以前,我只需进行配置,它就能正常工作。显然我遗漏了一些东西,但是什么呢?msmtp 应该很容易(就像 sendmail 一样,当时它使用 sendmail.cf---我明白这一点;他们切换到的新系统无法使用)。
有人知道这里可能出了什么问题吗?
谢谢
答案1
默认行为tls on
是期待一个简单的 SMTP 连接并使用STARTTLS
命令将其升级到 TLS,就像您通常在端口 587(或有时是端口 25)上所做的那样。
端口 465 通常不会以这种方式设置 - 连接会立即以 TLS 握手开始,因此您需要使用 来指定tls_starttls off
。