![为什么 procmail 会以 .{x}AA1 这样的格式保存我的电子邮件?](https://linux22.com/image/785650/%E4%B8%BA%E4%BB%80%E4%B9%88%20procmail%20%E4%BC%9A%E4%BB%A5%20.%7Bx%7DAA1%20%E8%BF%99%E6%A0%B7%E7%9A%84%E6%A0%BC%E5%BC%8F%E4%BF%9D%E5%AD%98%E6%88%91%E7%9A%84%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%EF%BC%9F.png)
我只是想将所有收到的电子邮件保存到一个文件夹中,这样我就可以让监视脚本在文件夹发生变化时以各种方式梳理和解析附件。我们将这个特定的文件夹称为“incoming_emails”。
我已经使用 procmail 配置了 fetchmail,并且编写了一个将电子邮件保存到 Incoming_emails 的配方,但它们的保存格式是“msg.aAA1”、“msg.XAA1”或“msg.bAA1”等。据我了解,它们应该以 .eml 格式保存。我不确定如何使用动态文件格式...我应该怎么做?
这是我的食谱:
:0
* .*
$HOME/incoming_emails
答案1
目前还不清楚这里到底是什么问题。“.eml 格式”并没有完全定义好,但你在那些文件中找到的肯定是符合 Postel RFC5322(原名 822)标准的电子邮件格式。
Procmail 支持一些文件夹格式,但它们之间的区别主要在于文件的组织方式。
- Berkeley mbox 格式是单个文件,
From_
每条消息前面都加一行。这是本地邮箱的传统标准格式。如果目标不是目录,则这是 Procmail 投递的默认格式。 - MSGPREFIX 格式是每条消息一个文件,就像您现在遇到的情况一样。可以配置消息前缀,但没有内置方法来添加
.eml
文件扩展名(如果您问的是这个的话)。 - MH 格式有点类似,只是文件名只是数字。
- Maildir 格式是许多邮件服务器的现代标准;它是一个目录,其中包含名为、和的子目录
new
。tmp
在cur
这些目录中,每个文件名都是一个长唯一标识符,该标识符根据多种因素分配,以确保其唯一且安全。
除此之外,您都需要编写明确的规则或调用外部实用程序。(例如,某些 IMAP 服务器希望您始终调用其传递实用程序,该实用程序还负责将消息添加到服务器的索引中,等等。)
选择哪种基于目录的格式取决于规则中目录名称的格式(dir
vs dir/
vs dir/.
),以及IIRC一些启发式方法来确定 Maildir 子目录是否已存在。
也可以看看https://www.iki.fi/era/procmail/mini-faq#appendix-folders
顺便说一句,要无条件执行配方,只需完全省略条件行。要将所有邮件简单地发送到一个位置,只需设置DEFAULT
为该文件夹路径即可。