检查三个 procmail 条件中是否至少有两个为真
Check whether at least two out of three procmail conditions are true
我如何在 procmail 中检查三个垃圾邮件过滤器中是否至少有两个将邮件视为垃圾邮件?由于对垃圾邮件进行了多次检查,我不想重复代码 headers。
# Invoke bogofilter
:0 fw
| bogofilter -C -d /home/shared_directories/bogofilter -p -e
# Invoke bmf
:0 fw
| bmf -d /home/shared_directories/bmf -f text -p
# Invoke spambayes
:0 fw
| sb_filter -d /home/shared_directories/spambayes
# If two out of three filters agree it's spam, file it.
:0
* ^X-Bogosity: Spam
* ^X-Spam-Status: Yes
* ^X-Spambayes-Classification: spam
{
# Process the mail
}
您可以使用基础分数为 -1 的评分。
:0
* -1^0
* 1^0 ^X-Bogosity: Spam
* 1^0 ^X-Spam-Status: Yes
* 1^0 ^X-Spambayes-Classification: spam
{
# ... stuff
如果单个条件匹配,则分数只会变为零,因此复合结果不匹配。如果两个或多个单独条件使分数高于零,则采取行动。
procmailsc
manual page解释了这个机制。它的使用不是很广泛,并且有很多复杂性,但基础知识简单明了。
我如何在 procmail 中检查三个垃圾邮件过滤器中是否至少有两个将邮件视为垃圾邮件?由于对垃圾邮件进行了多次检查,我不想重复代码 headers。
# Invoke bogofilter
:0 fw
| bogofilter -C -d /home/shared_directories/bogofilter -p -e
# Invoke bmf
:0 fw
| bmf -d /home/shared_directories/bmf -f text -p
# Invoke spambayes
:0 fw
| sb_filter -d /home/shared_directories/spambayes
# If two out of three filters agree it's spam, file it.
:0
* ^X-Bogosity: Spam
* ^X-Spam-Status: Yes
* ^X-Spambayes-Classification: spam
{
# Process the mail
}
您可以使用基础分数为 -1 的评分。
:0
* -1^0
* 1^0 ^X-Bogosity: Spam
* 1^0 ^X-Spam-Status: Yes
* 1^0 ^X-Spambayes-Classification: spam
{
# ... stuff
如果单个条件匹配,则分数只会变为零,因此复合结果不匹配。如果两个或多个单独条件使分数高于零,则采取行动。
procmailsc
manual page解释了这个机制。它的使用不是很广泛,并且有很多复杂性,但基础知识简单明了。