oko*_*vko 5 macos msmtp macos-high-sierra
按照ArchLinux上的说明进行安装和配置msmtp不起作用。文件/etc/ssl/certs/ca-certificates.crt或类似内容丢失,尝试使用它msmtp发送邮件将导致证书错误。
OSX High Sierra 的替代配置是什么,以便msmtp可以像教程中那样用于发送邮件?
注意:我前段时间自己回答了这个问题,并认为它很有用且值得分享,所以我创建了这个问题和答案。例如,如果对证书和指纹有更多了解的人可以提供更高质量的答案,并提供有关使用证书或指纹之间的差异的更多详细信息和背景信息,那就太好了。
几年后请注意:我知道这是一个自我回答的问答,但它有 1000 次浏览,所以也许记得给有用的问答点赞。
您可以使用该tls_fingerprint字段~/.msmtprc代替tls_trust_file。要生成 的字段值tls_fingerprint,您可以运行命令
msmtp --serverinfo --tls --tls-certcheck=off --host=smtp.gmail.com --port=587 | egrep -o "([0-9A-Za-z]{2}:){31}[0-9A-Za-z]{2}"
tls_fingerprint和tls_trust_file是互斥的,所以不要尝试同时使用两者,否则msmtp会出现配置错误。
您可以运行以下脚本来安装和配置,以便与或 上的帐户msmtp一起使用。gmailUbuntu 18Mac OSX High Sierra
小智 2
另一种方法对我有用,可以避免 tls_fingerprint 过期的问题。
使用MacPorts安装curl CA捆绑包:
sudo port install curl-ca-bundle
找到捆绑包:
port contents curl-ca-bundle
Port curl-ca-bundle contains:
/opt/local/etc/openssl/cert.pem
/opt/local/share/curl/curl-ca-bundle.crt
Run Code Online (Sandbox Code Playgroud)
将以下行添加到 .msmptrc
tls_trust_file /opt/local/share/curl/curl-ca-bundle.crt
有用:
Hatchet:~ me$ mail me@mac.com
Subject: Hi Mike
done
.
EOT
Run Code Online (Sandbox Code Playgroud)
没有错误。从日志文件中:
exitcode=EX_OK