Reading time: 60 – 100 minutes
Per defecte les cues que té el postfix són:
- hold: missatges que no s’intenten entregar mai
- incoming: cua d’entrada de missatges
- active: cua en la que es decideix amb quin delivery agent s’itenta entregar un missatge
- defer/deferred: missatges que no s’han pogut entregar per un error temporal es posen en aquesta cua
- bounce: on es generen els missatges d’error cap al remitent dels missatges que no s’han pogut entregar
- corrupt: cua que conté missatges danyats amb els que no es pot fer res
Accions que podem fer amb els missatges d’una cua:
- Listing messages
- Deleting messages
- Holding messages
- Requeuing messages
- Displaying messages
- Flushing messages
Gestió de les cues:
- GUI per gestionar les cues de postfix
- Mostra l’estat de totes les cues.
mailq
- Mostrar els 10 dominis amb més missatges pendents d’enviar, sovint va bé per controlar quan ens han usat per fer un email i hi ha molts correus enganxats per enviar.
qshape -s deferred|head -n 10
- Borrar un missatge de les cues.
postsuper -d ID_MSG
- Borrar tots els missatges de les cues.
postsuper -d ALL
- Script per borrar missatges de les cues segons origen o destí:
#!/usr/bin/perl -w # # pfdel - deletes message containing specified address from # Postfix queue. Matches either sender or recipient address. # # Usage: pfdel # use strict; # Change these paths if necessary. my $LISTQ = "/usr/sbin/postqueue -p"; my $POSTSUPER = "/usr/sbin/postsuper"; my $email_addr = ""; my $qid = ""; my $euid =
gt;; if ( @ARGV != 1 ) { die "Usage: pfdel \n"; } else { $email_addr = $ARGV[0]; } if ( $euid != 0 ) { die "You must be root to delete queue files.\n"; } open(QUEUE, "$LISTQ |") || die "Can't get pipe to $LISTQ: $!\n"; my $entry = ; # skip single header line $/ = ""; # Rest of queue entries print on # multiple lines. while ( $entry = ) { if ( $entry =~ / $email_addr$/m ) { ($qid) = split(/\s+/, $entry, 2); $qid =~ s/[\*\!]//; next unless ($qid); # # Execute postsuper -d with the queue id. # postsuper provides feedback when it deletes # messages. Let its output go through. # if ( system($POSTSUPER, "-d", $qid) != 0 ) { # If postsuper has a problem, bail. die "Error executing $POSTSUPER: error " . "code " . ($?/256) . "\n"; } } } close(QUEUE); if (! $qid ) { die "No messages with the address <$email_addr> " . "found in queue.\n"; } exit 0;
- Borrar missatges segons email origen o destí.
/root/bin/pfdel email
- Hold a message / Retenir missatges, no intentar servir-los. Posar-los a una cua congelats.
postsuper -d ID_MSG
- Hold all messages
postsuper -d ALL
- Moure un missatge de la cua ‘hold’ a la cua ‘active’.
postsuper -H ID_MSG
- Moure tots els missatges de la cua ‘hold’ a la cua ‘active’.
postsuper -H ALL
- Re-encuar missatges, per exemple si el postfix tenia un erro de configuració després de corregir-los podem re-encuar els missatges perquè es corregeixin els possibles errors de classificació que hagin patit. Per exemple, canvi de ‘delivery agent’.
postsuper -r ID_MSG o postsuper -r ALL
- Veure el contingut d’un missatge que esta a la cua:
postcat -q ID_MSG
- Per forçar el re-enviament de missatges a la cua.
postqueue -s o postfix flush
- Per forçar l’enviament de missatges a la cua per un domini.
postqueue -s domini.com
4 thoughts on “Cues del postfix i informacions relacionades”
I després comentar que existeix el programa pfqueue que va de meravella per a gestionar les cues de correu! 🙂
mira els links q ja tens això a l’article
Sabia jo que em faria falta este post… gracies per compartir!
Sabia jo que em faria falta algun dia este post… gracies per compartir! 🙂
Comments are closed.