因为我使用不同的电子邮件客户端来阅读/发送我的邮件我想设置procmail将我的电子邮件移动到通常由Thunderbird过滤器功能完成的文件夹。
我知道我可以在我的电子邮件用户.procmailrc文件中使用以下代码来执行此操作:
:0:
* ^From:.test@host.name.com
myfolder
但是我有一个大约50个电子邮件地址的列表,我想转移到那个特定的“myfolder”。
所以使用
:0:
* ^From:.first@mail.com
* ^From:.second@mail.com
jimsmail
没有帮助,因为procmail使用AND操作符来解释它们。所以如果From是第一个@ ...和第二个@ ...,那么上面的代码将是真的,这将永远不会成真。
那么我如何使用OR运算符。
实际上我有一个简单的文本文件,其中包含所有电子邮件地址。 如果procmail在该文件中准备就绪并且检查From是否与文件中的至少一行匹配,则移动电子邮件发送到“myfolder”会很酷。
像
这样的东西 :0:
* ^From:file(email.txt)
myfolder
是否可以使用此类或类似内容的任何代码。 我不想在procmailrc文件中添加这3行50次。
答案 0 :(得分:2)
Procmail使用regexp,因此您可以使用|
字符分隔地址。
:0:
* ^From:.((first|second|third)@mail.com|(fourth|fifth)@othermail.com)
myfolder
会奏效。在一条线上可能会有五十个混乱,请注意......
答案 1 :(得分:2)
我找到了解决方案。 使用此解决方案,我可以使用一个简单的电子邮件文本文件,将每个电子邮件地址保存在一行中。
我的.procmailrc中的代码如下:
EMAILFILE=/path/to/my/emailfile
FROM=`formail -xFrom: | sed -e 's/ *(.*)//; s/>.*//; s/.*[:<] *//'`
:0
* ? fgrep -qxis $FROM $EMAILFILE
myfolder