我正在配置 msmtprc smtp 以发送出站电子邮件,但在使用 office365 时遇到问题。它在Gmail帐户中工作正常,但是我在Office 365中遇到以下错误。
msmtp: authentication failed (method LOGIN)
msmtp: server message: 535 5.7.3 Authentication unsuccessful [BN6PR13CA0016.namprd13.prod.outlook.com]
msmtp: could not send mail (account default from /etc/msmtprc)
/var/log/msmtp.log
Authentication unsuccessful [BN6PR13CA0016.namprd13.prod.outlook.com]' errormsg='authentication failed (method LOGIN)' exitcode=EX_NOPERM
/etc/msmtprc
defaults
auth on
logfile /var/log/msmtp.log
account office
host smtp.office365.com
port 587
protocol smtp
from support@example.net
user support@example.net
password *******
tls on
tls_starttls on
tls_trust_file /etc/pki/tls/certs/ca-bundle.crt
是否有人成功地将 Msmtprc 与 office365 一起使用?
谢谢。
我已经成功地使用 msmtp 很长一段时间了,使用以下设置(在 CentOS 7 盒子上(,但配置在$HOME/.msmtprc
中,因为它仅适用于我的用户而不是全局:
account default
host smtp.office365.com
port 587
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-bundle.crt
tls_certcheck on
auth on
user username@example.com
passwordeval pass office365.com
from username@example.com
logfile ~/.msmtp.d/msmtp.log
..所以这和你的 99% 相同,除了我没有在文件中有密码,而是使用passwordeval
通过给定命令的输出提供密码。
也许password
和密码本身之间的多个空格导致空格被添加到密码的开头?
您也可以尝试运行msmtp
以便它有一个控制终端(即从 shell 运行,而不是像systemctl
那样通过服务管理器运行(来测试以这种方式为其提供密码是否按预期工作?