Actualizado el sábado, 11 enero, 2020
Uso y comandos de Exim server
Exim4 es un MTA ligero, de los más usados en servidores linux. Su configuración es bastante sencilla, por tanto en este articulo vemos los comandes principales con los cuales podremos detectar problemas y administrar nuestro servidor.
De que se compone Exim mail server:
- Agente de transferencia de correo (MTA): Maneja la transmisión de mensajes a otra máquina en una red y acepta mensajes a sus propios usuarios. En otras palabras, cuando se envía un correo electrónico, el MTA de su máquina se pondrá en contacto con el ISP de su ISP, el cual enviará el correo al ISP del ISP del corresponsal.
- Agente de entrega de correo (MDA): Maneja la recepción del correo electrónico. Cuando el MTA acepta mensajes a sus usuarios, los envía al MDA, que los clasificará y los envía a las bandejas de entrada correctas.
- Agente de recuperación de correo (MRA): Si el buzon de mail esta en un servidor y no en tu escritorio, el MRA devolverá los correos a la máquina.
- Agente de usuario de correo (MUA): Es el cliente navegador de correo, se encarga de mostrar correctamente los correos electrónicos para que puedan ser leídos, también se encarga de codificar los que escribes antes de enviarlos al MTA.
- Agente de envío de correo (MSA): Es el vínculo entre el MUA y el MTA.
- Los protocolos de comunicación más usados son: SMTP y POP (o IMAP). Los MTA se comunican entre sí a través del protocolo SMTP.
Comandos Exim
Cada correo electrónico genera tres archivos en Exim. Uno en el /var/spool/exim/msglog
que contiene los registros relacionados con el mensaje y que lleva como nombre el mensaje-id, los otros dos están en /var/spool/exim/input
y toma como nombre el mensaje-id más un sufijo que indica si es el encabezado (-H) o Del mensaje Cuerpo (-D).
El Mensaje-ID, está compuesto por caracteres alfanuméricos, similar al ejemplo: XXXXXX-YYYYYY-ZZ
.
Muestra lo que está hace Exim en ese momento.
exiwhat
Ver la configuración del servidor.
exim -bp
Muestra la cola de correo.
mailq
Número de mensajes en la cola.
exim -bpc
Por dominio.
exim -bp | exiqsumm
Count Volume Oldest Newest Domain Volume Oldest Newest Domain ----- ------ ------ ------ ----------- ------ ------ ------ ------ 11 495KB 14h 14h gmail.com11 495KB 14h 14h gmail . com 20 900KB 14h 14h homtail.com20 900KB 14h 14h homtail . com 154 6930KB 14h 14h yahoo.com154 6930KB 14h 14h yahoo . com
Informa como exportar el mensaje.
exim -bt mimail@dominio.es
Buscar por expresiones regulares en la cola de correo. Por mail o dominio.
exiqgrep -f [user]@dominio
Buscar mensajes por destinatario.
exiqgrep -r [user]@dominio
Buscar mensajes enviados hace más de 120 segundos.
exiqgrep -o 120
Buscar mensajes enviados hace menos de 120 segundos.
exiqgrep -y 120
Cola de correo
Congelar mensaje.
exim -Mf message-id
Desbloquear mensaje.
exim -Mt message-id
Forzar enviar mensaje.
exim -M message-id
Consulta los registros del mensaje.
exim -Mvl message-id
Mostrar los encabezados de los mensajes.
exim -Mvh message-id
Muestra el cuerpo del mensaje.
exim -Mvb message-id
Elimina el mensaje de la cola.
exim -Mrm message-id
Forzar envío de mensajes congelados.
exim -qf
Forzar envío de todos los mensajes.
exim -qff
Añadir destinatarios a un mensaje.
exim -Mar message-id address [address …]
Modificar remitente.
exim -Mes message-id address
Ejemplos de comandos avanzados
Listar mensajes agrupados por remitente:
Exim -bpr | Grep -Eo "<[^] * @ [^] *>" | Sort | Uniq -c- bpr | Grep - Eo "<[^] * @ [^] *>" | Sort | Uniq - c
Listar mensajes agrupados por destinatario:
Exim -bpr | Grep -Eo "^ \ s * [^] * @ [^] * $" | Sort | Uniq -c- bpr | Grep - Eo "^ \ s * [^] * @ [^] * $" | Sort | Uniq - c
Eliminar todos los mensajes que tengan más de 12h:
Exiqgrep - o 43000 - i | Xargs exim - Mrm
Eliminar todos los mensajes de la cola que estén congelados:
Exiqgrep - z - i | Xargs exim - Mrm
Eliminar los mensajes de un remitente en particular:
Exiqgrep - i - f [ user ] @dominio | Xargs exim - Mrm
Eliminar los mensajes de más de 12h. de un remitente:
Exiqgrep - o 43000 - i - f [ user ] @dominio | Xargs exim - Mrm
Eliminar todos los mensajes que contengan una «palabra en particular«:
Grep - lr 'palabra en particular' / var / spool / exim / input / | Sed - e 's / ^. \ / \ ([A-zA-Z0-9 -] * \) - [DH] $ / \ 1 / g' | Xargs exim - Mrm