Exim es un agente de transporte de correo (Mail Transport Agent, MTA) que puede ser utilizado en la mayoría de sistemas Unix, siendo una de las opciones más comunes, junto con Qmail o Postfix para servicio de correo servidores Unix.
Partiendo de la base de que conocemos el funcionamiento de Exim, los comandos básicos que un administrador de sistemas que utilice este MTA son:
Lista por pantalla los correos en cola:
exim -bp
Sacar por pantalla el nº de correos en cola:
exim -bpc
Muestra un resumen de los correos en cola (dominio, nº de correos, tiempo en cola y peso):
exim -bp | exiqsumm
Eliminar un correo en concreto:
exim -Mrm '<id correo>'
Congelar un correo:
exim -Mf '<id correo>'
Procesar un correo:
exim -M '<id correo>'
Eliminar todos los correos congelados:
exiqgrep -z -i | xargs exim -Mrm
Sacar por pantalla que está haciendo exim en este momento:
exiwhat
Hacer un traceroute a una dirección de correo:
exim -bt '<id correo>'
Ver las cabeceras de un correo:
exim -Mvh '<id correo>'
Ver el cuerpo de un correo:
exim -Mvb '<id correo>'
Ver los logs de un correo:
exim -Mvl '<id correo>'
Forzar cola de correo:
exim -qff
Buscar correos en cola de un determinado emisor:
exiqgrep -f [usuario]@dominio
Buscar correos en cola de un determinado receptor:
exiqgrep -r [usuario]@dominio
Respecto a estos dos últimos comandos, exigrep es un comando extremadamente útil, dispone de muchas otras opciones que pueden ser revisadas en su respectiva ayuda.
Eliminar la cola de correo completa (dos formas):
exim -bp | awk '/^ *[0-9]+[mhd]/{print "exim -Mrm " $3}' | sh
rm /var/spool/exim/input/*
Conociendo estos comandos (o teniendolos a mano) uno ya puede moverse con soltura en exim.
Hola.
Tengo servidores con cPanel y de hecho esta exim, he tratado de ejecutar los comandos mencionados; pero, no se ejecutan, salen como comandos no encontrados.
Que podría estar pasando?, o tiene otro entorno para ejcutarse.
root@server1 [~]# exiwhat
bash: exiwhat: command not found
Hola rpmserver, es raro porque en todos los servidores que tengo con cPanel exiwhat viene instalado por defecto, ejemplo:
root@xxxx [~]# exiwhat
5552 handling incoming connection from xxx.red-80-32-xxx.staticip.rima-tde.net (SERVIDOR) [x.xx.xxx.xxx]
…
…
…
———–
Mira a ver donde tienes el binario y trata de ejecutarlo directamente desde ahí, ejemplo:
root@xxxx [~]# whereis exiwhat
exiwhat: /usr/sbin/exiwhat
Saludos
Gracias.
Efectivamente, ubicando el binario y ejecutandolo desde su raiz si funciona. No entiendo xq no se ejecuta x defecto, asumi en un principio que esto sucedia con varios comandos para lo cual los ejecutaba generalmente desde /sbin/comando, suponiendo que el cpanel les hacia chroot.
Salu2.
Hola, tengo un problema y lo expongo aqui haber si alguien me ayuda.
Mi Servidor 1 (Linux, cpanel con exim), desde cualquier cuenta alojada, escojo una al azar y creo una cuenta de correo, ejemplo:
email@servidor1.com
Luego tengo otra cuenta en un reseller (servidor windows, el cual no controlo).
cuando intento enviar desde mi servidor1 no se puede.
email@servidor2.com
ejemplo:
envio desde: email@servidor1.com hacia email@servidor2.com
* En cuestión de segundos me retorna el mensaje:
email@servidor1.com
Unrouteable address
He contacto con el soporte tecnico de ambos servidor, tanto de mi servidor1, como del servicio donde tengo mi reseller, ambos dicen que todas las configuraciones andan bien.
Lo extraño del caso, es que es solo la comunicación entre estos servidores, pues desde el servidor1.com puedo enviar y recibir correos a cualquier otro dominio o servidor sin importar su ubicación.. lo mismo sucede con el servidor2.com, puedo enviar y recibir correos desde cualquier lugar.
Entonces, que creen que puede estar pasando?,.
Algunos consejos para hacer test avanzados? (el servidor1.com es dedicado, asi que tengo acceso root), al servidor2.com NO.
PD. Me dijeron en ambos soportes que no hay bloqueos de dominios, ni de IPs.
ADICIONAL:
Del servidor2 puedo enviar correos al servidor1, pero no asi desde el servidor1 al servidor 2.
Saludos.
Hola a mi si me funciono bien los comando yo ejecute los comandos en la siguiente ruta.
cd var/log/exim
lo que quiero saber es como eliminoi las 3 hojas que tengo de correo me sale que no lo puedo hacer….
exim: malformed message id after -Mrm option
HACATAKA
Fedora Embassador From Peru
Qué línea estás ejecutando para que te de ese error? Parece que no le estás pasando bien el ID de mensaje al -Mrm
exim: malformed message id after -Mrm option
Hola Alex,
Al parecer hacataka desea vaciar la cola de exim en su totalidad, lo cual podría hacerlo al vuelo con rm /var/spool/exim/input/* o utilizando el propio comando enmarañado de exim.
exim -bp | awk ‘/^ *[0-9]+[mhd]/{print «exim -Mrm » $3}’ | sh
Por cierto este comando limpia la cola totalmente y seria genial que lo agregues a tu post o nos recomiendes uno mas corto que realice la misma acción.
Salu2.
Añadidos!
Muchas gracias!
Excelente información , Gracias!!
Excelente info, Gracias!!
Saludos,
¿Como se puede aumentar en envio simultaneo y enviar los email en cola?.
He intentado con exim -qff , pero es un poco lento…
Gracias.
Excelente Post Me ha servido de mucho
Hola Alex, muchas gracias por estos artículos de Exim, ayudan mucho.
A ver si tú nos puedes ayudar como experto en Exim con unas cosas que necesitamos en nuestro servidor.
Necesitamos detectar en el servidor de correo Exim envíos masivos de correo, en concreto nos gustaría:
– Limitar envíos por cuentas de e-mail a X destinatarios y/o mensajes por hora.
– No permitir que se envíen mensajes a través de nuestro servidor SMTP si el remitente (From) no coincide con el usuario utilizado para enviar correo o al menos que no deje enviar si el remitente no es un e-mail de nuestro servidor.
– Activar alertas para que nos envíe un e-mail cuando se detecten «Sender rate» altos.
He mirado las opciones de ratelimit en la documentación de Exim http://www.exim.org/exim-html-current/doc/html/spec_html/ch40.html#SECTratelimiting pero me pierdo con tantas opciones, a ver si tú nos puedes ayudar con lo que queremos.
Si me puedes contestar al e-mail te lo agradecería y si nos quieres cobrar algo lo podemos negociar.
Muchísimas gracias por tu ayuda,
Saludos.
Hola,
Quisiera preguntar por algún comando que indique el numero de mensajes congelados y en lo posible el tiempo que llevan así.. saben alguno?
El comando correcto, para eliminar los correos de forma recursiva es:
rm -rf /var/spool/exim/input/*
hola, tengo dos servidores con godaddy, el problema es que el archivo exim.conf se modifica solo una o dos veces por semana borrandose una linea que es vital para que salgan los correos asi es como debe de estar:
cat /etc/exim.conf | grep route_list
route_list = «* 127.0.0.1»
route_list = !+local_domains dedrelay.secureserver.net
y cuando la borran se ve asi
cat /etc/exim.conf | grep route_list
route_list = «* 127.0.0.1»
Esto impide que los correos salgan, la solucion que hago es subir el archivo nuevamente, pero me gustaria saber por que se borra
Saludos.
Hola,
¿con qué editor o comando editas el archivo de configuración? ¿Has comprobado que tras hacer un «reload» la línea sigue ahí? ¿Has probado a añadir un archivo de configuración personal y que éste sea cargado desde la configuración inicial?
Saludos.
Gracias, excelente, me sirvio para quitar la cola de mi servidor.
Excelente tío, me has sacado de un problemon