我需要 procmail 根据一些规则将收到的邮件放入特定文件夹。我知道如何实现这一点,但我需要在特定文件中写入一组静态规则。我真正需要的是配置 procmail 以使用存储在 mysql 数据库中的规则。我该怎么做?我读了一些相关内容,我发现的一个解决方案是将消息传送到 php/perl 脚本并返回一个文件夹名称来放置消息。但我完全不知道如何使用 php 脚本作为规则,然后使用其返回值。
答案1
“根据一些规则将收到的邮件放入[a]特定文件夹”正是 Procmail 开箱即用的功能,但我想您正在寻找类似这样的内容:
FOLDER=`/path/to/script.php`
:0
$FOLDER
它看似简单,但实际上仅此而已。反引号中的命令将接收当前消息作为其标准输入。
(如果$FOLDER
是静态文件,则需要添加锁定,但这是一个切题的话题。)
如果这就是你的 Procmail 规则所做的一切,你可能需要考虑 Procmail 是否完全是必需的。交付部分仍然有用且强大,所以我建议你保留它,但由于 Procmail 擅长精确地完成你想用 PHP 做的事情,也许你需要考虑你的方法。
如果您的数据库不经常更改,您可能要考虑使用脚本.procmailrc
从数据库生成规则。这样 Procmail 规则本身就可以是静态的(理想情况下不需要任何外部过程),但每当数据库更新时,您都需要重新生成它们。