我已安装并配置 Postfix 以将邮件传递到 Procmail。我已将 Procmail 配置为将电子邮件传递给 Python 脚本。我还注意到 Procmail 正在将同一电子邮件的副本放入/var/spool/mail/<username>
. 我不希望将消息的副本保留在那里或服务器上的任何地方。有没有办法配置 Procmail 在将消息发送到 Python 脚本后丢弃消息?
在我的 .procmailrc 中配置如下:
:0Wc:
| env python3 /home/user/python/script.py
:0
* ^From:.*@.*
/dev/null
然而,这不起作用。消息仍然结束/var/spool/mail/<username>
。
这正是 Procmail 开箱即用的运作方式。配方按顺序执行,直到采取交付操作,或者直到我们用完配方,然后交付到
$DEFAULT
. 写入邮箱、传送到命令或转发给不同的收件人都是交付操作。但是,您的第一个配方有一个
c
标志,它明确禁用此行为,并导致即使在此操作完成后仍会尝试另一次交付。用这么多的话来说,取出
c
标志(可能还有第二个冒号;或者在它之后命名一个显式锁定文件)。旧的(不是这样的)迷你常见问题解答有一个关于锁定的部分,巧合的是,它也有一个关于你的主要问题的段落,以及关于“交付”的讨论。