如何让procmail将消息保存在我的Maildir文件夹中,但不包括文件中的主机名(消息名)?我在我的新/子文件夹中得到以下消息名:
1464003587.H805375P95754.gator3018.hostgator.com, S=20238_2我只想去掉主机名。使用procmail可以做到这一点吗?多么?另外,是否可以用时间发送的时间戳代替第一次时间戳?是否可以规定邮件的格式?
发布于 2020-10-17 06:52:51
不,您不能覆盖Maildir的文件名格式,尤其是因为出于互操作性的原因,它被指定为特定的方式。当多个主机上的多个代理同时写入相同的消息存储时,该格式保证对冲突具有鲁棒性。只有当它们都遵循相同的规则时,才能正确工作。这些规则的一个明显的部分是规定,代理运行的主机名必须包含在每个新消息的文件名中。
文章对该格式的设计和历史有很好的概述,当然还有到权威标准和其他主要来源的链接。
如果您不特别需要Maildir兼容性(与tmp / new / cur子目录等),您只需在每次运行时创建一个唯一的mbox文件;如果可以保证它是唯一的,则在写入它时不需要锁定。
例如,如果您有一个名为uuid的工具,它可以在每次调用中生成一个有保证的唯一标识符,您可以很容易地使用它作为文件名;
:0 # or maybe :0r
`uuid`如果您真的认为可以为并发交付创建自己的解决方案,那么应该很容易看到如何提供您自己的工具。(Maildir解决了并发和分布式交付,因此对此的要求更加严格。)
Procmail支持的其他格式对于文件名的生成有自己的硬编码规则,尽管简单的MH文件夹格式(基本上是递增的)消息号作为文件名也是值得研究的。旧迷你-常见问题解答简要概述了支持的格式,以及如何选择Procmail在每个菜谱中使用的传递方式。
https://stackoverflow.com/questions/64399179
复制相似问题