如何设置 mutt 以便它通过 bash 脚本将发送的消息保存到特定的远程 IMAP 文件夹?

如何设置 mutt 以便它通过 bash 脚本将发送的消息保存到特定的远程 IMAP 文件夹?

我已经在 CentOS 7 上安装了 Zimbra Collaboration Suite。我需要使用 mutt 每小时发送一封电子邮件。

问题是,每当我的脚本执行 mutt 时,它都不会将消息保存到 .muttrc 中的特定(远程 IMAP)文件夹中。

同时,当我直接执行命令时,它会将消息保存到文件夹中。

这是我的 .muttrc 配置,位于执行脚本的当前用户主目录中:

set from="IP Address Information <ip-no-reply@xxx>"
set folder="imaps://username:password@localhost"
set mask="!^\\.[^.]"
set record="+IPInfo"
set postponed="+Drafts"
set spoolfile="+INBOX"
set edit_headers=yes

set ssl_starttls=yes
set ssl_force_tls=yes

set smtp_url = "smtp://username:password@localhost:587"

这是 mutt 调用,由 cron 每小时执行一次:

echo "Test" | mutt -s "IP Address Information" [email protected]

如果我像这样调用该命令:

mutt -s "IP Address Information" [email protected]

并按照流程操作(mutt 打开 vi 并让我输入正文),它确实将邮件保存到文件夹中。但是我无法将此命令放入脚本中,因为它应该是自动的。

这是我提到的目标文件夹:

[zimbra 截图](http://imgur.com/U8EnQ6M)

答案1

最近我拆分了 mutt 和 Zimbra 的位置,发现电子邮件传递过程中存在证书问题。

mutt 正在等待确认是否接受或拒绝证书,如果它在没有交互的情况下运行,它会自动拒绝该证书。[这是我对这种行为的假设]

以下是更新的 .muttrc:

set from="IP Address Information <ip-no-reply@xxx>"
set folder="imaps://username:password@zimbra_or_postfix_server"
set mask="!^\\.[^.]"
set record="+IPInfo"
set postponed="+Drafts"
set spoolfile="+INBOX"
set edit_headers=yes

set certificate_file=.mutt-certs

set ssl_starttls=yes
set ssl_force_tls=yes

set smtp_url = "smtp://username:password@zimbra_or_postfix_server:587"

我正在寻找该问题的解决方案,并在这里找到了答案:http://www.seas.upenn.edu/cets/answers/mutt-certificates.html这说明我必须set certificate_file向文件添加指令。

让 mutt 保存自签名证书后,脚本可以再次将电子邮件发送到 MTA。但是当我检查用于投递的帐户的邮箱时,有一个名为“IPInfo”的文件夹遵循该set record指令。因此,我认为解决我原来的问题的方法是让 mutt 保存自签名证书。

我希望这对任何寻找类似答案的人有所帮助。

相关内容