Postfix:可以在Hold Queue之外保存电子邮件吗?

我可以这样做:

  1. mv从Postfix保留队列中发送一封电子邮件,说/tmp/foo/

  2. 将电子邮件保留在/tmp/foo/中任意一段时间(范围从几秒到几天)。 在此期间,Postfix服务器甚至可能会popup一次或多次。

  3. 然后,在我select的时候,把这封电子邮件从/tmp/foo/拷贝到Postfix保存队列中…全部没有任何队列ID冲突并导致电子邮件覆盖?

根据这个链接 ,一个队列ID可以保证是唯一的,只有在1秒间隔! 我不确定这是否仍然如此。

如果我不能这样做,那么我可以这样做:

  1. 在Postfix保持队列(在其生成时)内生成一个新的Postfix之外的11个字符的队列ID(比如使用mktemp ),以及

  2. 把这个新的队列ID从/tmp/foo/返回到Postfix的等待队列?

从本质上讲 ,我的要求是保留任意一段时间的邮件。 只有这样,而不是把它们保持在Postfix保持队列中,而是将它们保持在别处。

提前谢谢了。

我的理解是Postfix Queue ID有两个组件,每秒重复一个毫秒时间计数器,以及消息文件的Inode编号。

如果是这样,时间冲突的概率是1/1000或0.1%,我认为这是不可靠的,因此唯一性必须单独根据Inode数来pipe理。

当文件存在于Postfix队列文件系统中时,Inode号码是唯一的,因此任何移动必须位于同一个文件系统中以保持Inode号码的唯一性。 移动到另一个文件系统将释放Postix队列文件系统中的Inode,从而允许Inode重用。 大多数文件系统并没有定义什么时候重新使用Inode,有些是这样快速的,因为重用caching的空闲Inode比从后备存储读取要快得多。

仅在相同的文件系统约束下观察移动才能保证队列ID在消息文件存在时不会被重用。

Postfix是否会在返回到保持队列时处理这个消息是我所不知道的。 我的希望是另一个可能知道的,我们之间你会有一个完整的答案。