Como suspender temporariamente a entrega de mensagens para um domínio específico (não local) com o Postfix?

11

Usando o Postfix e os transportes personalizados, posso gerenciar as velocidades de entrega, dependendo do domínio do destinatário. (Por exemplo, envio no máximo uma mensagem por segundo para *@hotmail.com)

Eu também uso regras semelhantes para bloquear destinos ruins (o htmail.com é bloqueado imediatamente, evitando muitos loops na fila).

No entanto, gostaria de suspender temporariamente a entrega de e-mails para um destino por 24 ou 48 horas (e-mails para *@gmail.com suspensos, tudo o mais entregue). As mensagens entrariam na fila durante esse tempo e seriam entregues somente quando eu quisesse alterando a configuração.

Alguém sabe como fazer isso?

Obrigado

    
por Julien Tartarin 10.12.2009 / 13:28

3 respostas

18

Coloque mensagens em um estado HOLD

/etc/postfix/main.cf:

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

/ etc / postfix / hold:

gmail.com        HOLD
blah.com         HOLD

Certifique-se de executar postmap hash:/etc/postfix/hold sempre que atualizar o arquivo.

Se você quiser liberar todas as mensagens em espera, use postsuper :

# postsuper -H ALL
    
por 10.12.2009 / 15:10
2

Você pode fazer isso com um mapa de transporte :

gmail.com defer:

    
por 25.05.2012 / 13:56
0

Para colocar em espera para um domínio específico:

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

Para liberar para um domínio específico:

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