如果与发件人匹配,则使用 procmail 移动电子邮件

发布于 2024-09-28 10:14:20 字数 1142 浏览 6 评论 0原文

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

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

:0:
* ^From:[email protected]
myfolder

但我有一个大约 50 个电子邮件地址的列表,我想将其移至该特定的“myfolder”。

所以使用

:0:
* ^From:[email protected]
* ^From:[email protected]
jimsmail

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

那么我该如何使用 OR 运算符呢?

实际上我有一个简单的文本文件,其中包含所有电子邮件地址。 如果有一项功能,可以让 procmail 在该文件中准备就绪,并检查 From 是否与文件中的至少一行匹配,然后将电子邮件移动到“myfolder”,那将是很酷的功能。

类的东西

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

类似Doesanybode之 ,如果这个或类似的东西是可能的。 我不想在我的 procmailrc 文件中添加这 3 行 50 次。

as im using different email clients to read/send my mails i want to setup procmail to move my emails to a the folder which is normally done by Thunderbird filter feature.

I know that i can do it by using the following code for procmail in my email users .procmailrc file:

:0:
* ^From:[email protected]
myfolder

But i have a list of about 50 email adresses which i would like to move to that specific "myfolder".

So by using

:0:
* ^From:[email protected]
* ^From:[email protected]
jimsmail

doesnt help, because procmail interprets them by using the AND operater. So the code above would be true if From is first@... AND second@..., which will never be true.

So how do i use the OR operator.

Actually i have a simple text file where all email adresses are.
Would be cool to have a feature where procmail ready in that file and checks if From matches with at least one of the lines in the file, the moves email to "myfolder".

Something like

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

Does anybode if this or something similar is possible.
I dont want to add these 3 lines 50 times in my procmailrc file.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

柠北森屋 2024-10-05 10:14:20

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

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

会起作用的。请注意,五十个都在一条线上可能会有点混乱......

Procmail uses regexps, so you can separate addresses with the | character.

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

would work. Could get a little messy with fifty all on one line, mind...

陌路黄昏 2024-10-05 10:14:20

我找到了解决方案。
通过此解决方案,我能够使用一个简单的电子邮件文本文件,将所有电子邮件地址保存在一行中。

我的.procmailrc中的代码如下:

EMAILFILE=/path/to/my/emailfile
FROM=`formail -xFrom: | sed -e 's/ *(.*)//; s/>.*//; s/.*[:<] *//'`
:0
* ? fgrep -qxis $FROM $EMAILFILE
myfolder

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文