是否可以将 Procmail 配置为在将邮件传递给脚本后删除该邮件?

是否可以将 Procmail 配置为在将邮件传递给脚本后删除该邮件?

我已安装并配置 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>

答案1

这正是 Procmail 的开箱即用操作。配方按顺序执行,直到执行交付操作,或者直到我们用完配方,然后交付给$DEFAULT。写入邮箱、管道到命令或转发给不同的收件人都是交付操作。

但是,您的第一个配方有一个c标志,它明确禁用此行为,并导致即使此操作完成后仍尝试另一次交付。

简而言之,去掉c标志(也可能是第二个冒号;或者以此命名一个明确的锁文件)。

旧的(不那么旧的)迷你常见问题解答有一个有关锁定的部分巧合的是,它还有一个关于你的主要问题的段落,和一个“交付”的讨论。

相关内容