如何在 cmdline 中运行 procmail 并提供 .eml 文件作为输入?

如何在 cmdline 中运行 procmail 并提供 .eml 文件作为输入?

在收到电子邮件上运行我的外部 python 脚本时,Procmail 失败。之后,我尝试手动运行该脚本并提供与 procmail 相同的参数 - 它通过了,没有任何问题,所以我试图找出为什么 procmail 对该脚本有问题。是否可以从 cmdline 运行 procmail 并提供包含电子邮件原始数据的已保存 .eml 文件的路径?我应该配置其他东西吗,也许权限是错误的 - 但我猜 procmail 是由与我手动检查 python 脚本相同的用户执行的。

答案1

您可以使用以下命令测试脚本

procmail -m VERBOSE=yes recipe.rc <message.eml

当然,配方文件和/或示例消息的文件路径可以是绝对的或相对的。您VERBOSE=yes将获得详细的日志记录(如果您没有LOGFILE在配方文件中指定不同的目标,则在标准错误上);如果没有食谱触发,请-m避免交付。DEFAULT

如果一个配方触发并且有副作用,这些副作用仍然会存在,尽管您通常可以安排您的代码,以便在设置特定变量时将交付发生在单独的位置,以便于调试而无需用测试消息填充您的实时邮件文件夹。

就其价值而言,.eml它并没有很好地标准化,尽管您可能指的是 RFC5322 (née 822) 格式,这正是 Procmail 所期望的。不过,有许多程序使用.eml完全不同格式的扩展名。

有关进一步的调试技巧,也许另请参阅http://www.iki.fi/era/mail/procmail-debug.html

相关内容