web-dev-qa-db-fra.com

Comment suspendre temporairement la livraison du courrier à un domaine spécifique (non local) avec postfix?

En utilisant Postfix et Transports personnalisés, je peux gérer les vitesses de livraison en fonction du domaine du destinataire. (Par exemple, j'envoie un message Max un par seconde à *@hotmail.com)

J'utilise également des règles similaires pour bloquer les mauvaises destinations (HTMail.com est bloquée immédiatement, en évitant de nombreuses boucles dans la file d'attente).

Cependant, j'aimerais suspendre temporairement la livraison du courrier à une destination pendant 24 ou 48 heures (mails à *@gmail.com suspendu, tout le reste livré). Les messages mettraient la queue au cours de cette période et seraient livrés que lorsque je veux en modifiant la configuration.

Est-ce que quelqu'un sait comment faire ça ?

Merci

13
Julien Tartarin

Mettre des messages dans un état d'attente

/etc/postfix/main.cf:

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

/ etc/postfix/Hold:

gmail.com        HOLD
blah.com         HOLD

Assurez-vous de courir postmap hash:/etc/postfix/hold Chaque fois que vous mettez à jour le fichier.

Si vous souhaitez libérer tous les messages en attente, utilisez postsuper :

# postsuper -H ALL
20
Philip Reynolds

Mettre en attente pour un domaine spécifique:

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

Pour libérer un domaine spécifique:

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