Posts etiquetados ‘gestionar colas’

Cuando existen problemas con la recepción del correo provocados por un exceso de mails encolados en postfix, podemos optar por retener cierta cantidad de mails y entregarlos posteriormente.

# mailq (Muestra la lista de emails encolados.)(Si quieres con pausa escribe (# mailq | more) y continuas presionando la tecla enter)
# mailq | cut -d " " -f 1 | grep "*" | wc -l (Cuenta el número de emails en la cola pendientes de enviar.)

Todos los email que tengan el ID terminado por un “*” están pendientes de ser entregados y si terminan en “!” están retenidos y no se van a entregar hasta que se liberen. Si el mail se ha intentado enviar y no se ha podido, aparecerá el ID junto a una pequeña descripción del error.

Si se necesita retener los mail procedentes de una dirección concreta, se puede usar el siguiente conjunto de órdenes:

# for i in `mailq | grep "usuario@dominiohost.com" | awk '{print $1}' | grep "*" | cut -d* -f1`; do postsuper -h ${i}; done (Retiene los mails que coincidan con ese remitente)
# postsuper -h ALL (Retiene todos los mails encolados)

Si es para mails de salida, emplear este otro comando:

# for i in `mailq | head | grep -E '(*|dominiohost.com)' | awk '{print $1}' | grep "*" | cut -d* -f1`; do postsuper -h ${i}; done (Retiene los mails que coincidan con ese remitente)
# postsuper -h ALL (Retiene todos los mails encolados)

Ahora los ID de los mails afectados, irán acompañados del carácter “!”, indicando que se encuentran retenidos.

Para liberarlos de la retención y ponerles en la cola de envío, se puede usar cualquiera de estos tres comandos:

# for i in `mailq | grep "user@host.com" | awk '{print $1}' | grep "\!" | cut -d! -f1`; do postsuper -r ${i}; done (Vuelve a encolar los mails que coincidan con ese remitente)
# postsuper -r ALL hold (Vuelve a encolar todos los mails que se encuntran retenidos)
# postsuper -H ALL (Libera todo el mail que se encuentra retenido)

Para borrar completamente los mensajes de cualquier cola en la que se encuentren:

# postsuper -d "ID del mensaje" (Borra un mensaje determinado)
# postsuper -d ALL (Borra todos los mensajes...... TENER CUIDADO AQUI YA QUE BORRA TODOS LOS MENSAJES DE LA COLA)
# postsuper -d ALL hold (Borra los que se encuentran retenidos)

Eso es todo espero les haya servido. Thankss