【问题标题】:Procmail to automatically make new folders to store emails from new sendersProcmail 自动创建新文件夹来存储来自新发件人的电子邮件
【发布时间】:2018-05-24 15:13:06
【问题描述】:

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

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

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

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

请问您能帮忙吗?谢谢。

【问题讨论】:

标签: procmail


【解决方案1】:

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

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

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

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

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

如果dir 尚不存在,shell sn-p mkdir -p dir 将创建它,否则是无害的空操作。

【讨论】:

  • 感谢@tripleee 的回答。我希望在每个发件人的名字之后调用文件夹。假设 sender1 和 sender2(我以前从未与他们有过任何通信)向我的 Gmail 帐户发送电子邮件。我希望 fetchmail 检索这些电子邮件,并希望 procmail 创建文件夹 sender1/ 和 sender2/ 并将电子邮件分发到这两个文件夹中。我认为我的邮箱格式是 mbox;如果是这样的话,你的食谱有什么不同吗?您所说的“电子邮件终点站”是什么意思?
  • 如果您看到From: Sender McMailface <sender1@example.net>,则电子邮件终点是机器可读部分sender1@example.net
  • 用 mbox 变体更新了答案。
  • 你说在 mbox 的情况下我不需要目录检查。这是否意味着即使 mkdir 命令也消失了(正如您清楚地表明的那样),因此这个配方中没有条件行?
  • 是的,没错。交货是无条件的。
猜你喜欢
  • 1970-01-01
  • 2011-11-27
  • 1970-01-01
  • 2015-07-18
  • 2017-12-01
  • 2015-09-26
  • 1970-01-01
  • 1970-01-01
  • 2021-02-03
相关资源
最近更新 更多