我想mutt
(mutt-kz
实际上 - 我很想迁移到,neomutt
但这是一个更大的项目)来获取我的 SMTP 密码,pass
所以我不必将它以明文形式存储在我的配置文件中,但我不是确定如何正确地将密码传递到我的.muttrc
.
这就是我所拥有的.muttrc
:
source ~/.mutt/pass.sh|
set smtp_pass = $my_pass
然后.mutt/pass.sh
包含:
#! /bin/bash
my_pass=$(pass Example/user)
如果我从命令行添加并运行它,它会回显我的密码echo ${my_pass}
。pass.sh
当我启动时,系统mutt-kz
会提示我解锁我的pass
gpg 密钥,所以有些东西正在工作,但是当我尝试从 Mutt 发送邮件时,它会询问我的 SMTP 密码,如果我不提供它会失败,消息不会发送:( “SASL 身份验证失败”)
那么......我如何正确地将变量从我的 shell 脚本传递给我的.muttrc
?
该程序
~/.mutt/pass.sh
必须产生如下所示的输出所以它可能是这样的
请注意,如果您的密码包含某些特殊字符(
\'"
和空格),则需要引用它。例如,如果您的密码在文本文件~/passwords/smtp.txt
中,您可以使用:对于密码
sword\fish
,这将打印出来set my_pass="sword\\fish"
。如果您使用 Gnome-keyring 来存储您的密码,那么您可以使用该
secret-tool
实用程序从密钥环中读取您的密码。例如,这是我用于 Office 365 密码的密码(密码不包含任何需要引用的特殊字符):另一种可能性是使用反引号扩展。所以你应该能够做到:
如果您
neomutt
最终迁移到,您还可以使用命令行定义变量,即然后你可以使用
my_pass
你的例子中的变量。