因此,如果您已经看到/使用过mailman
,您就会知道它会在[groupname]
通过它发送的电子邮件的主题行中添加一个标签(如果该标签尚不存在)。
这能用吗procmail
?
我家里有一台运行着的电子邮件机exim
。我有几个电子邮件别名,它们只是将电子邮件转发给我,或者有时转发给我和我的妻子。
如果这些电子邮件带有主题标签,我可以轻松使用它来搜索/过滤这些电子邮件,那就太好了。类似于mailman
在[groupname]
主题标题中,但我不需要/不需要所有的功能mailman
。
请注意,我的电子邮件客户端将不是这样做。我真的很想/需要/喜欢在电子邮件服务器上这样做。
答案1
基本上,您需要在邮件服务器上拥有 shell 访问权限才能在那里运行 Procmail。如果您确实拥有所需的权限,那么执行您要求的操作就很简单,尽管您的要求有点不清楚。
如果尚不存在,我会假设您想要添加[groupname]
到消息中。[email protected]
:0fhw
* ^From: groupname-list@example\.net\>
* ! ^Subject:( Re:)? *\[groupname]
* ^Subject:\/.+
| formail -I "Subject: [groupname]$MATCH"
标志f
表示通过在操作中过滤管道来修改标题;意味着h
操作仅适用于标题(以减少来回复制未修改的数据量);并且w
表示检查操作是否成功。
特殊的正则表达式标记\/
导致其后的匹配被捕获到特殊变量中MATCH
。
因为点和左方括号是正则表达式元字符,所以我们需要一个反斜杠来逐字匹配它们。\>
单词边界确保net
在较长的地址(例如)中不会部分匹配,[email protected]
尽管它并非完全万无一失([email protected]
例如,它仍然会匹配)。
无论如何,您需要将第一个条件替换为与目标邮件标题完全匹配的条件。例如,此处的条件不匹配(因为正则表达式不包含跳过字符上方文本的表达式)。From: List Name <[email protected]>
<
我希望其余部分应该很容易理解。