Comandos Exim para SSH: Gestiona la cola de correo

comandos básicos exim

Dos de los MTA (Mail Transport Agent, o agente de transporte de correo) más utilizados a nivel mundial en los servidores son Exim y Postfix. Entre otras muchas cosas, el motivo principal es que los paneles de control más utilizados, como cPanel (exim) o Plesk (Postfix), los montan de serie. En el caso de Plesk, además de Postfix, podemos optar por qmail.

En muchas ocasiones, nos encontramos con problemas en el correo, que podemos resolver mediante el uso de SSH, introduciendo determinados comandos, que nos pueden dar mucha información. Podemos controlar y encontrar el motivo de una salida de SPAM, por ejemplo. También podemos forzar correo a que salga si, por el motivo que sea, se ha quedado congelado. Incluso podemos buscar correos de un determinado emisor o receptor, para ver qué ocurre con dicho correo.

Ambos MTA nos permiten tener detalles muy concretos mediante sus comandos. Por ello, vamos a analizarlos, y explicarte para que sirven. Recuerda, que si tienes un servidor dedicado con nosotros, la administración esta incluida en el precio, por lo que nosotros nos ocupamos de analizar cualquier circunstancia con el correo, y ejecutar los comandos necesarios para solucionarlo.

Comandos Básicos para Exim por SSH

Muchos comandos, nos van a solicitar el “id-correo”. El id-correo lo podemos obtener mediante el listado de la cola de correo. Es decir, utilizando exim -bp, nos saldrá el listado de correos en cola. El ID es  alfanumérico, y se encuentra tras las horas en cola, y el tamaño, muy similar a: 1e1k0W-0008UF-LG

Número de correos en cola

Nos permite obtener el número de correos que tenemos en cola. En general, debería ser 0. Un número alto puede indicar que está saliendo SPAM desde nuestro servidor.

1
exim -bpc

 

Listar y resumir correos en cola

Es un complemento del comando anterior. Nos permite conocer, si hay algún correo en cola, datos sobre estos correos. Las horas que está en la cola, el tamaño, su ID, emisor, y receptor.

1
exim -bp

Se puede obtener un detalle más concreto, con este comando que hace un resumen:

1
exim -bp | exiqsumm

 

Buscar correos de un receptor concreto

Si nos interesa saber cuantos correos se han enviado a un receptor en concreto, que se han quedado en cola,  podemos hacerlo mediante este comando.

1
exiqgrep -r cuenta@dominio.com

 

Buscar correos de un emisor concreto

Es el mismo caso que el anterior, pero cambiando el receptor, por el emisor. Es decir, nos permite conocer los correos enviados por un determinado emisor, que se han quedado en cola.

1
exiqgrep -f cuenta@dominio

 

Forzar la salida de un correo determinado

Cuando un correo no sale, por el motivo que sea, y sabemos que el receptor ya ha resuelto su problema, o simplemente queremos volver a intentar que sea enviado, podemos forzarlo con este comando.

1
exim -M 'id-correo'

 

Forzar la salida de todo el correo en cola

Este comando nos permite hacer lo mismo que el anterior, pero con todo el correo. Es decir, podemos forzar la salida de todo el correo en cola, para que se intente enviar.

1
exim -qff

 

Ver cabecera de un correo en concreto

Este comando nos permite conocer la cabecera de un correo determinado. Esto es muy importante si consideramos que se está enviando SPAM. El comando nos mostrará datos muy interesantes, como desde donde se envía, si ha sido por SMTP o PHP, hacia dónde se dirige, y una de las cosas más interesantes, es el “X-PHP-Script”, que nos indica mediante qué archivo PHP se ha enviado el correo, pudiendo identificar un archivo inyectado en el dominio enviando spam.

1
exim -Mvh 'id-correo'

 

Ver cuerpo del mensaje de un correo en concreto

Nos permite conocer el cuerpo de un mensaje. Es importante, si consideramos que el servidor emite SPAM, para confirmar que esto está sucediendo. Muchas veces, por ejemplo, en foros, sistemas de comentarios… se registran bots porque no tenemos verificación CAPTCHA, esto provoca, que el servidor envíe correo para confirmar el registro, y se queden en cola, porque el correo de los bots no existe. ¿Es SPAM? No, en este caso, no es SPAM, aunque tenga toda la pinta mediante comandos anteriores (muchos correos en cola, cabeceras con PHP-Script, direcciones extrañas en el comando exim -bp…), se puede confirmar que sea o no SPAM analizando el contenido.

Si el problema es de SPAM, eliminaremos el archivo PHP causante, y generalmente, actualizaremos los scripts a sus últimas versiones para evitar nuevas inyecciones. En cambio, si no es SPAM saliente, y se trata de correos enviados a bots que se registran en nuestros sitios, lo ideal es activar un CAPTCHA que evite esos registros automáticos.

1
exim -Mvb 'id-correo'

 

Ver logs de un correo en concreto

Este comando es básico para saber porqué un correo esta en cola. Este comando nos muestra todos los detalles en el log de exim. Gracias a esto, podemos saber detalles de qué responden los servidores que deben recibir el correo, y que nos dicen del porque no lo reciben.

1
exim -Mvl 'id-correo'

 

Ver que hace exim en estos momentos

Nos permite conocer que hace exim en un momento determinado. Es ideal también si consideramos que esta saliendo spam desde nuestro servidor, para monitorizar qué es lo que hace, y obtener detalles concretos.

1
exiwhat

 

Detener o congelar un correo determinado en cola

Nos permite evitar que un correo determinado salga de forma automática. Puede servirnos si queremos analizar detalles del correo.

1
exim -Mf 'id-correo'

 

Eliminar un correo determinado en cola

Este comando elimina un correo determinado de la cola, evitando que se entregue. Generalmente, si un correo esta en cola, y no se envia, y tenemos claro el porque, y queremos desistir de ese envio, utilizaremos el comando.

1
exim -Mrm 'id-correo'

 

Eliminar todos los correos de un dominio concreto

El mismo caso que el anterior, pero para un dominio concreto y completo. Es decir, eliminará todos los correos en cola del dominio que indiquemos.

1
exiqgrep -i -r dominio.com | xargs exim -Mrm

 

Eliminar todos los correos congelados

Eliminaremos todos los correos congelados, que no se van a enviar de forma automática. Si queremos probar el envio de estos correos congelados, deberemos usar el comando “exim -qff”.

1
exiqgrep -z -i | xargs exim -Mrm

 

Eliminar la cola completa de correo

Este comando eliminará la cola completa de nuestro servidor de correo, dejando la misma a 0. Puede ser de utilidad tras solucionar una salida de SPAM.

1
exim -bp | awk '/^ *[0-9]+[mhd]/{print "exim -Mrm " $3}' | sh

 

 

 

 

[Total:1    Promedio:5/5]

Send this to a friend