我正在使用gpg2并awk与 msmtp 一起在 emacs 中发送电子邮件。这是我.msmtprc文件的相关部分
account gmail
host smtp.gmail.com
from myusername@gmail.com
auth on
port 465
user myusername@gmail.com
passwordeval gpg2 -q --for-your-eyes-only --no-tty -d ~/.authinfo.gpg | awk '/machine smtp.gmail.com login myusername@gmail.com/ {print $NF}'
Run Code Online (Sandbox Code Playgroud)
这就是我的 .authinfo.gpg 文件的样子
machine smtp.gmail.com login myusername@gmail.com port 465 password myverysecretpassword
machine imap.gmail.com login myusername@gmail.com port 993 password myverysecretpassword
Run Code Online (Sandbox Code Playgroud)
出于某种原因,上述 passwordeval 字段中的命令在终端中运行良好,即它输出密码,但是当我使用 msmtp 运行它时
echo -e "Subject: Test Mail\r\n\r\nThis is a test mail" |msmtp --debug --from=default -t myusername@gmail.com
Run Code Online (Sandbox Code Playgroud)
awk 返回权限错误。
loaded user …Run Code Online (Sandbox Code Playgroud)