如何使用 Postfix 暂时暂停向特定域(非本地)传递邮件?

如何使用 Postfix 暂时暂停向特定域(非本地)传递邮件?

使用 Postfix 和自定义传输,我可以根据收件人的域管理传送速度。(例如,我每秒最多向 *@hotmail.com 发送一条消息)

我也使用类似的规则来阻止不良目的地(htmail.com 会立即被阻止,从而避免队列中的许多循环)。

但是,我想暂时暂停向某个目的地发送邮件 24 或 48 小时(暂停向 *@gmail.com 发送邮件,其他邮件均发送)。在此期间,邮件会排队,只有通过更改配置,我才会在需要时发送邮件。

有谁知道这是怎么做到的吗 ?

谢谢

答案1

将消息置于 HOLD 状态

/etc/postfix/main.cf:

smtpd_recipient_restrictions = 
    ...
    check_recipient_access hash:/etc/postfix/hold

在 /etc/postfix/hold 中:

gmail.com        HOLD
blah.com         HOLD

确保postmap hash:/etc/postfix/hold每次更新文件时都运行。

如果要释放所有保留的消息,请使用后超级

# postsuper -H ALL

答案2

您可以使用交通地图

gmail.com defer:

答案3

要暂停特定域:

postqueue -p | awk 'BEGIN { RS = "" } { if ($7 == "[email protected]" ) print $1 }' | tr -d '!*' | postsuper -h -

要为特定域发布:

postqueue -p | awk 'BEGIN { RS = "" } { if ($7 == "[email protected]" ) print $1 }' | tr -d '!*' | postsuper -H -

相关内容