Exim:将邮件保存到唯一文件

Posted

技术标签:

【中文标题】Exim:将邮件保存到唯一文件【英文标题】:Exim: save mail to unique file 【发布时间】:2012-06-25 14:21:25 【问题描述】:

简短版:我需要将邮件从 Exim 保存到网络目录,但理想情况下,我希望将这些保存为 unqiue 文件,而不是附加到邮箱中。

长版本:我有一个解析邮件的 php 脚本。目前,它与邮件服务器位于同一个盒子上,允许我将邮件直接传送到 PHP 脚本 - 很简单。

很快我的邮件服务器将托管在一个单独的(通过 NFS 连接)服务器上。我最初的计划是简单地创建一个指向邮箱的符号链接,并安排脚本通过 cron 解析邮件,在解析后删除邮件。

问题是邮件以 mbox 格式存储,即附加到单个文件中。由于 PHP 无法通过 NFS 可靠地使用文件锁,我担心我的脚本会丢弃在执行期间到达的新邮件。

那么 - 我可以让 Exim 将每封邮件保存到单独的文件中,而不是将邮件写入单个文件吗?

感谢您的建议。

【问题讨论】:

【参考方案1】:

简而言之,您的邮箱使用 maildir 而不是 mbox。

看看这个how-to 的 Exim4 和 Maildir 设置。

您可以做的其他事情是使用 PHP IMAP 扩展来访问您的本地邮件服务器。这样,每条消息也将被独立解析,并允许您在不更改邮件服务器配置的情况下访问单个文件。

【讨论】:

嗨 - 我曾看到 Maildir 作为替代方案,但希望我可以只为 1 个邮箱做类似的事情。我会接受您的解决方案,因为它通常可能是正确的做法(尽管我可能只是将输入通过管道传输到 Perl 并以这种方式保存到单个文件)。谢谢!

以上是关于Exim:将邮件保存到唯一文件的主要内容,如果未能解决你的问题,请参考以下文章

阻止 exim 转发电子邮件

Unix邮件程序Exim曝两大严重漏洞,谁来保障邮件安全?

当前Exim邮件队列

text Exim删除所有邮件

从 PHP 发送 MIME 电子邮件时,Exim 会覆盖“发件人”标头

在共享主机上使用 Sendgrid 发送电子邮件