Procmail 自动创建新文件夹以存储来自新发件人的电子邮件

Procmail to automatically make new folders to store emails from new senders

我正在学习如何使用 procmail,但在这一点上,我什至不确定它是否适合我正在尝试做的事情。

到目前为止,我已经设法让 fetchmail 从 Google IMAP 帐户检索电子邮件,并让 procmail 将这些电子邮件过滤到我之前创建的本地文件夹中。

我想知道是否有办法让 procmail 在检索来自新发件人的电子邮件时自动在本地创建一个新文件夹并将该电子邮件存储到该文件夹​​中。

到目前为止,我只找到了一个描述 procmail 为邮件列表自动创建文件夹的可能性的网站,但是配方使用了一些我不知道其含义的字符,而且 procmail 官方网站似乎很疯狂无法到达。

你能帮忙吗?谢谢。

不清楚您希望文件夹的名称,以及您使用的邮箱格式;但假设 maildir 文件夹由发件人的电子邮件终端命名,try

Who=`formail -rtzxTo:`
:0
* ? mkdir -p "$Who"
$Who/

对于 mbox 文件夹,您根本不需要目录检查,因为该文件夹只是一个文本文件,您需要从文件夹名称中删除最后的斜杠。 Mbox 需要锁定,因此在零后添加第二个冒号。

Who=`formail -rtzxTo:`
:0:
$Who

获取 formail 以创建回复,然后提取生成的回复的 To: header 是一种标准但稍微不明显的方法,仅获取发件人的电子邮件终端输入消息。

如果 shell 片段 mkdir -p dir 不存在,则创建 dir,否则是无害的 no-op。