首页 > 解决方案 > Procmail 自动创建新文件夹来存储来自新发件人的电子邮件

问题描述

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

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

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

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

请问你能帮忙吗?谢谢你。

标签: procmail

解决方案


目前尚不清楚您希望该文件夹被调用什么,以及您使用的是什么邮箱格式;但假设 maildir 文件夹由发件人的电子邮件终端命名,请尝试

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

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

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

formail创建回复然后提取To:生成的回复的标题是一种标准但有点不明显的方法,它只为输入消息的发件人获取电子邮件终点。

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


推荐阅读