首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果有多个收件人使用procmail,请将电子邮件放入多个文件夹

如果有多个收件人使用procmail,请将电子邮件放入多个文件夹
EN

Stack Overflow用户
提问于 2012-03-08 20:19:09
回答 2查看 1.5K关注 0票数 0

我打算在家里建立一个电子邮件系统,而且我订阅了很多邮件列表。通过fetchmail获取到我的本地计算机并由procmail进行过滤的电子邮件。但是,有一种情况以我目前的知识是不可能解决的。我已经在谷歌上搜索了2-3个小时,以找到一个解决方案,但没有任何结果。

我想要的是,我收到一封有多个收件人的电子邮件,我想将这封电子邮件复制到不同的文件夹中。下面是一个示例:

代码语言:javascript
复制
Cc: linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org

我想把这封电子邮件放到linux-kernel和linux-kernel-janitor文件夹中。我怎样才能通过procmail做到这一点?

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-09 16:00:07

您可以使用SWITCHRC=在收件人列表上执行Procmail循环,但这样做有点黑客作风。或者,如果要处理的文件夹列表有限,可以分别传递到每个文件夹中,如果至少传递过一次,则删除邮件。

代码语言:javascript
复制
LASTFOLDER=
:0c:
* ^TO_linux-kernel@vger\.kernel\.org\>
linux-kernel
:0c:
* ^TO_kernel-janitors@vger\.kernel\.org\>
kernel-janitors
# ... repeat for other addresses you want to multiplex ...
# If it was delivered, LASTFOLDER will be set
:0
* LASTFOLDER ?? .
/dev/null

如果在到达本节之前,您可能已经复制到其他收件箱中,则需要将LASTFOLDER显式设置为空字符串。它应该是没有必要的,但我把它放在里面,以防万一。(此变量包含邮件传递到的最新文件夹的名称。)

票数 1
EN

Stack Overflow用户

发布于 2012-03-10 23:02:22

解决方案看起来像这样:

首先,需要一条If语句,因为我的.procmailrc文件不仅包含内核邮件列表过滤条件。如果匹配,则存在另一个条件列表。我认为到那时它会变得更细粒度。

代码语言:javascript
复制
:0
 * [To|Cc].*vger.kernel.org
   LASTFOLDER=

    :0Ac:
    * ^[To|Cc].*linux-janitors@vger.kernel.org
    | DoItSomethingWithIt

    :0Ac:
    * ^[To|Cc].*linux-kernel@vger.kernel.org
    | DoItSomethingWithIt2

    :0                             
    * LASTFOLDER ?? .
    | DoItSomethingWithIt3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9617570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档