我已经在 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 保存自签名证书。
我希望这对任何寻找类似答案的人有所帮助。