Как временно приостановить доставку почты в определенный домен (не локальный) с Postfix?

13

Используя Postfix и пользовательские транспорты, я могу управлять скоростью доставки в зависимости от домена получателя. (Например, я отправляю максимум одно сообщение в секунду на *@hotmail.com)

Я также использую аналогичные правила для блокировки плохих адресатов (htmail.com сразу блокируется, избегая большого количества петель в очереди).

Однако я хотел бы временно приостановить доставку почты до места назначения на 24 или 48 часов (письма на *@gmail.com приостановлены, все остальное доставлено). Сообщения будут стоять в очереди в течение этого времени и будут доставляться только тогда, когда я захочу, изменив конфигурацию.

Кто-нибудь знает как это сделать ?

Благодарность

Жюльен Тартарин
источник

Ответы:

20

Поместить сообщения в состояние HOLD

/etc/postfix/main.cf:

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

/ И т.д. / постфикса / удержание:

gmail.com        HOLD
blah.com         HOLD

Убедитесь, что вы запускаете postmap hash:/etc/postfix/holdкаждый раз, когда обновляете файл.

Если вы хотите освободить все сообщения на удержании, используйте postsuper :

# postsuper -H ALL
Филип Рейнольдс
источник
Похоже, это не работает в конце концов. Почта отправляется немедленно. Может быть, потому что я отправляю почту из $ mynetworks? REJECT и DISCARD тоже не работают, мне пришлось идти с ошибкой транспорта:
Julien Tartarin
Хорошо, мой плохой, почта, отправленная локально с 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 будет соответствовать адресу электронной почты отправителя в той же строке, что и идентификатор очереди. Адрес электронной почты получателя находится на следующей строке, и для него требуется соответствие домена, а не соответствие электронной почты.
Антти Рыцёля