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


13

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

我还使用类似的规则来阻止错误的目的地(htmail.com立即被阻止,避免了队列中的许多循环)。

但是,我想暂时将邮件传递暂停到目的地24或48小时(到*@gmail.com的邮件被暂停,所有其他内容都传递了)。邮件将在此期间排队,并且仅在我需要时通过更改配置来传递。

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

谢谢

Answers:


20

将邮件置于保留状态

/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

# postsuper -H ALL

看起来毕竟不起作用。邮件将立即提交。也许是因为我从$ mynetworks发送邮件?REJECT和DISCARD也不起作用,我不得不处理运输错误:
Julien Tartarin 09年

好的,不好,我没有检查通过mailx本地发送的邮件,因为它没有发送到smtpd。效果很好:)
朱利安·塔塔林


0

暂停特定域:

postqueue -p | awk 'BEGIN { RS = "" } { if ($7 == "your@domain.com" ) print $1 }' | tr -d '!*' | postsuper -h -

要为特定域发布:

postqueue -p | awk 'BEGIN { RS = "" } { if ($7 == "your@domain.com" ) print $1 }' | tr -d '!*' | postsuper -H -

就是不行。$ 7与队列ID在同一行上的发件人电子邮件地址匹配。收件人电子邮件地址在下一行,它需要一个域名匹配,而不是电子邮件匹配。
AnttiRytsölä2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.