Postfix - comment réessayer la livraison du courrier en file d'attente?


95

J'ai un serveur de messagerie de secours en cas de panne du serveur principal. En cas d'échec, les e-mails arrivent sur le serveur de sauvegarde et y restent jusqu'à ce que le principal soit de retour.

Si j'attends quelques fois, la livraison se fera automatiquement dès le retour du serveur principal mais peut être longue. Alors, comment forcer une nouvelle tentative d'envoi de tous les mails?

Par exemple: postqueue -p: donnez-moi une liste de mails

J'ai ensuite essayé postqueue -f (depuis la page de manuel: Vider la file d'attente: essayer de remettre tous les messages en file d'attente.). Il a sûrement vidé la file d'attente mais les mails n'ont pas été livrés ...


semble -f est flush et -q est queue (envoie la file d'attente)
erm3nda

1
il n'y a pas postqueue -q. La sendmail -qsyntaxe sendmail doit être prise en charge afin que postfix puisse remplacer complètement sendmail, mais c'est un synonyme. Les différentes lettres sont juste parce que postfix a choisi des lettres différentes de celles de sendmail.
Johannes H.

Désolé encore, commentez le même jour :) alors les deux ont tort.
erm3nda

Réponses:


113

Selon postqueue (1), vous pouvez simplement exécuter postqueue -fpour vider votre file d'attente. Si les messages ne sont pas remis après le vidage de la file d'attente mais qu'ils sont remis en file d'attente, vous pouvez vérifier les journaux de vos messages à la recherche d'erreurs.

Jetez un coup d’œil à postsuper (1) pourrait également être utile. Peut-être que les messages sont en attente et doivent être publiés en premier.


36

postqueue -fdevrait marcher. Si ce n'est pas le cas, c'est pour une bonne raison. Vérifiez les journaux. De plus, pfqueue est une commande très utile pour inspecter le spool du courrier.


16

sendmail -q relance immédiatement la livraison de tous les mails en file d'attente.


N’est-ce pas la même chose que d’exécuter postqueue -f?
Dalibor Filus

2
@NoICE c'est. Dans la documentation : -q Essayez de remettre tous les messages en file d'attente. Ceci est implémenté en exécutant la commande postqueue (1).
le-wabbit

Je n'ai pas vérifié cela, mais semble -f est flush et -q est en file d'attente. L'un essaie d'envoyer puis l'autre suffit de nettoyer la file d'attente. Il vaut mieux essayer de livrer je suppose.
erm3nda

1
@ erm3nda Vous devriez au moins vérifier les pages de manuel en premier. A partir de la postqueuepage de manuel: "-f Vider la file d'attente: essayez de remettre tous les messages en file d'attente. Cette option implémente la commande traditionnelle" sendmail -q "en contactant le démon Postfix qmgr (8)." => ils sont synonymes et font exactement la même chose. "
Johannes H.

@JohannesH. Doh ... désolé, tu as raison, je devrais le lire. Merci pour la correction.
erm3nda

4

postqueue -s domain.tldCela devrait amener la machine relais de secours à vider tout le courrier électronique de votre site. La configuration par défaut de postfix active le vidage par site pour tous les domaines de relay_domains. postqueue -ffera cela aussi, mais poussera aussi le courrier pour les sites externes, c’est à dire qu’il fait plus que ce dont vous avez besoin.

Comment déterminez-vous que le courrier n'a pas été livré? Sont-ils toujours sur l'hôte de sauvegarde ou ont-ils été envoyés à l'hôte principal puis perdus?

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.