我正在尝试通过 smtp(使用 msmtp)发送邮件。目的是通过雅虎邮件帐户发送。我已经正确配置了它(见底部),这样如果我使用选项运行--tls-certcheck=off
,所有内容都会通过我的帐户发送。然而,这并不安全。当我删除此标志时,根据作为信任文件值传递的内容,我得到
msmtp:TLS 证书验证失败:该证书不受信任。证书颁发者未知。
或者
msmtp:无法为 TLS 会话设置 X509 信任文件 /root/yahoo.crt:读取文件时出错。
第一种情况发生在证书位于 /etc/ssl/certs 中时,第二种情况发生在证书位于 /root 中时——尽管它们是同一个文件。从 yahoo.com 导出证书链后,我不得不删除 ^M 字符。当我尝试使用它时,我遇到了这些问题?证书文件名重要吗?我也更新了 ca-certificates(不确定这是否正确)?看来根证书是DigiCert SHA2 High Assurance Server CA
,据我所知,它没有安装?我认为这是正确的 x509 格式。请问下一步是什么...
msmtp 的配置:(注意:我在两个位置安装文件后,还将信任文件设置为 /root/yahoo.crt 和 /etc/ssl/certs/yahoo.crt)
# Set default values for all following accounts.
defaults
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile ~/.msmtp.log
#tls_certcheck off
account yahoo
host smtp.mail.yahoo.com
port 465
tls_starttls off
from <username>@yahoo.<tld>
user <username>
password <password>
account default: yahoo