![如何设置 mutt 以便它通过 bash 脚本将发送的消息保存到特定的远程 IMAP 文件夹?](https://linux22.com/image/1482099/%E5%A6%82%E4%BD%95%E8%AE%BE%E7%BD%AE%20mutt%20%E4%BB%A5%E4%BE%BF%E5%AE%83%E9%80%9A%E8%BF%87%20bash%20%E8%84%9A%E6%9C%AC%E5%B0%86%E5%8F%91%E9%80%81%E7%9A%84%E6%B6%88%E6%81%AF%E4%BF%9D%E5%AD%98%E5%88%B0%E7%89%B9%E5%AE%9A%E7%9A%84%E8%BF%9C%E7%A8%8B%20IMAP%20%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%9F.png)
我已经在 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 并让我输入正文),它确实将邮件保存到文件夹中。但是我无法将此命令放入脚本中,因为它应该是自动的。
这是我提到的目标文件夹:
答案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 保存自签名证书。
我希望这对任何寻找类似答案的人有所帮助。