Colas de Postfix:
IDs de correo en postfix.
010281A33* # El mensaje está en la cola activa (se intenta enviar). 010281A33! # El mensaje está en la cola de espera.
Manejo de la cola de postfix.
postqueue -p # Visualiza el contenido de la cola, equivale a "mailq". postqueue -f # Intenta enviar (Flushing) los correos de la cola deferred. postcat -vq XXXXXXX # Visualiza el cuerpo de un correo en la cola. postuser -h XXXXXXX # Se pone el correo en la cola "hold" (no se intentará enviar). postuser -h ALL # Se ponen todos los correos de las otras colas en la de espera (no se intentarán enviar). postuser -H XXXXXXX # Saca un correo de la cola de espera, por lo que será enviado o bien volverá a la "deferred". postsuper -d XXXXXXX # Elimina un mensaje concreto de la cola. postsuper -d ALL deferred # Elimina todos los mensajes de la cola "deffered" (/var/spool/mqueue/). postsuper -r XXXXXXX # Encola de nuevo el mensaje en la cola activa. postsuper -r ALL # Encolar de nuevo todos los mensajes en la cola activa para ser enviados. postconf -nf # Visualiza la configuración del archivo main.cfg. postconf # Comprobar la sintaxis de postfix. qshape # Muestra la congestión por dominios(FROM) de la cola "incoming" y "active" (). qshape # Muestra la congestión por dominios(TO) de la cola "incoming" y "active" (). qshape deferred # Muestra la congestión de la cola deferred (FROM). # Salida de qshape: 1 destinatario con dominio "busindre.com" lleva más de 160Min en cola. T 5 10 20 40 80 160 320 640 1280 1280+ TOTAL 1 0 0 0 0 0 1 0 0 0 0 busindre.com 1 0 0 0 0 0 1 0 0 0 0
Comandos útiles para trabajar con la cola de postfix.
# Para el envío de corroes (no la recepción). postconf -e defer_transports=smtp;postfix reload # Habilita de nuevo el envío de correos. postconf -e defer_transports=;postfix reload;postfix flush # Borra correos en la cola con la dirección USUARIO@EJEMPLO.COM en "FROM". postqueue -p | tail -n +2 | grep -v '^ *(' | awk 'BEGIN { RS = "" } { if ($7 == "USUARIO@EJEMPLO.COM" && $9 == "") print $1 } ' | tr -d '*!' | postsuper -d - # Borra correos en la cola con direcciones del dominio EJEMPLO.COM en "FROM". postqueue -p | tail -n +2 | grep -v '^ *(' | awk 'BEGIN { RS = "" } { if ($7 ~ /@EJEMPLO\.COM/ && $9 == "") print $1 } ' | tr -d '*!' | postsuper -d - # Borra correos en la cola con la dirección USUARIO@EJEMPLO.COM en "TO". postqueue -p | tail -n +2 | grep -v '^ *(' | awk 'BEGIN { RS = "" } { if ($8 == "USUARIO@EJEMPLO.COM" && $9 == "") print $1 } ' | tr -d '*!' | postsuper -d - # Borra correos en la cola con direcciones del dominio EJEMPLO.COM en "TO". postqueue -p | tail -n +2 | grep -v '^ *(' | awk 'BEGIN { RS = "" } { if ($8 ~ /@EJEMPLO\.COM/ && $9 == "") print $1 } ' | tr -d '*!' | postsuper -d -
Buscar con grep cadenas en el cuerpo / cabecera de todos los mensajes en la cola de postfux.
# Busca la cadena XXXXX en el cuerpo y cabeceras de todos los mensajes de correo en la cola. find /var/spool/postfix/deferred/ -type f -exec grep --color -aoi 'XXXXX' '{}' \; # Busca la cadena XXXXX en el cuerpo y cabeceras de todos los mensajes de correo contabilizando las ocurrencias. find /var/spool/postfix/deferred/ -type f -exec grep --color -aoi 'XXXX' '{}' \; | sort | uniq -c | sort -n 20 XXXXAA 25 Hola XXXXBB, qué marcha me llevas? 60 XXXXCC: chafas que me estafas 200 Su password es XXXX