我已成功设置了使用 msmtp 发送电子邮件的系统配置。以下是配置(位于/etc/msmtprc)。
account default
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile /var/log/msmtp
# gmail
host smtp.gmail.com
port 587
from <account>@gmail.com
user <account>
password <password>
# Syslog logging with facility LOG_MAIL instead of the default LOG_USER
syslog LOG_MAIL
我想使用 libsecret 不显示密码,所以我做了以下操作
secret-tool store --label=msmtp host smtp.gmail.com service smtp user <account>
我通过输入以下内容来验证密码是否已存储:
secret-tool lookup host smtp.gmail.com
然后我修改了/etc/msmtprc如下:
account default
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile /var/log/msmtp
# gmail
host smtp.gmail.com
port 587
from <account>@gmail.com
user <account>
# Syslog logging with facility LOG_MAIL instead of the default LOG_USER
syslog LOG_MAIL
这不起作用。
如果我倾倒/var/log/msmtp我得到以下信息:
11 月 12 日 14:36:30 host=smtp.gmail.com tls=on auth=on user=[电子邮件保护]收件人= smtpstatus=535 smtpmsg='535-5.7.8 用户名和密码不被接受。了解更多信息,请访问\n535 5.7.8 https://support.google.com/mail/?p=BadCredentials n10sm6743893wrv.77 - gsmtp' errormsg='身份验证失败 (方法 PLAIN)' exitcode=EX_NOPERM
我究竟做错了什么?
谢谢
答案1
在文件 /etc/msmtprc 中我替换了密码和密码验证,将其指向 libsecret 命令来提取密码。
account default
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile /var/log/msmtp
# gmail
host smtp.gmail.com
port 587
from <account>@gmail.com
user <account>
passwordeval "secret-tool lookup host smtp.gmail.com"
# Syslog logging with facility LOG_MAIL instead of the default LOG_USER
syslog LOG_MAIL