Postfix - 延迟邮件处理

Postfix - 延迟邮件处理

有没有办法配置 postfix 处理电子邮件的延迟?我的目标是从 MUA 接收邮件并将其传输到邮箱或其他 MTA 之间有 5 分钟的延迟。

谢谢。

答案1

您可以通过在 main.cf 的 smtpd 部分中指定新的主传输来轻松完成此操作:

smtpd_recipient_restrictions = check_policy_service unix:private/sleep_delay, permit_mynetworks, reject_unauth_destination

然后在master.cf中:

# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
sleep_delay  unix  -       n       n       -       -       spawn
        user=nobody argv=/usr/bin/perl /path/to/your_script

在 /path/to/your_script 中,只需让它 sleep(X) 和 exit(0)。您可以使用此脚本/配置作为如何实现与 postfix 的外部脚本交互的示例:

http://www.howtoforge.com/postfix_spf

答案2

此功能应该在 MUA 中实现。如果您有网络邮件,则可以安装实现此功能的插件。Thunderbird 有一个扩展。如果用户发送电子邮件后后来改变主意,那么她可以自行取消。我认为没有其他办法。如果一个人不知道所有答案,对服务器进行恶意攻击只会让事情变得更糟。

答案3

有一种方法,但是它太愚蠢了,所以我只提供步骤。

将其放入您的收件人限制中:recipient_restrictions = ..., static:HOLD, ... 然后您将获得一个输出,postqueue -p其中保留队列中的所有邮件都标有!(感叹号)和到达日期。使用 cron-job 和脚本来解析和检查此输出。如果邮件在队列中停留的时间超过 x 分钟,您可以通过发出将其重新注入 Postfix 传递过程postsuper -H [queue_id]。[queue_id] 位于 的第一列postqueue -p

请不要要求脚本自动执行此操作!

相关内容