作为系统帐户安装的 msmtp 无法与 libsecret 配合使用

作为系统帐户安装的 msmtp 无法与 libsecret 配合使用

我已成功设置了使用 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

相关内容