1

当我使用不同的电子邮件客户端来阅读/发送我的邮件时,我想设置 procmail 以将我的电子邮件移动到通常由 Thunderbird 过滤功能完成的文件夹中。

我知道我可以通过在我的电子邮件用户 .procmailrc 文件中为 procmail 使用以下代码来做到这一点:

:0:
* ^From:.test@host.name.com
myfolder

但是我有一个大约 50 个电子邮件地址的列表,我想将它们移动到那个特定的“我的文件夹”。

所以通过使用

:0:
* ^From:.first@mail.com
* ^From:.second@mail.com
jimsmail

没有帮助,因为 procmail 通过使用 AND 运算符来解释它们。因此,如果 From 是 first@... AND second@...,则上面的代码将是正确的,这永远不会是正确的。

那么我如何使用 OR 运算符。

实际上,我有一个简单的文本文件,所有电子邮件地址都在其中。如果在该文件中准备好 procmail 并检查 From 是否与文件中的至少一行匹配,将电子邮件移动到“myfolder”,那就太酷了。

就像是

 :0:
 * ^From:file(email.txt)
 myfolder

是否可以这样做或类似的事情。我不想在我的 procmailrc 文件中添加这 3 行 50 次。

4

2 回答 2

2

I found the solution. With this solution im able to use a simple email text file holding all email addresses in each in one line.

The code in my .procmailrc is as follows:

EMAILFILE=/path/to/my/emailfile
FROM=`formail -xFrom: | sed -e 's/ *(.*)//; s/>.*//; s/.*[:<] *//'`
:0
* ? fgrep -qxis $FROM $EMAILFILE
myfolder
于 2010-10-21T12:40:36.040 回答
2

Procmail 使用正则表达式,因此您可以使用|字符分隔地址。

:0:
* ^From:.((first|second|third)@mail.com|(fourth|fifth)@othermail.com)
myfolder

会工作。一条线有五十个可能会有点混乱,注意...

于 2010-10-20T10:14:15.457 回答