Acceder por ssh a un servidor remoto para comprobar el estado de los emails es bastante habitual. Exim, es el MTA más común para servidores linux, y es con el que me encuentro a diario. Aquí dejo una lista de comandos que me han resultado útiles en más de una ocasión para el mantenimiento de los servidores.
Mostrar el número de emails en cola
exim -bpc
Eliminar todos los emails en cola
exim -bp | awk '/^ *[0-9]+[mhd]/{print "exim -Mrm " $3}' | bash
Mostrar los emails en cola
exim -bp
Se mostrará algo parecido a esto
46h 1.7K 1bi4YL-000123-AB <> *** frozen *** root@your-server.net 43h 1.7K 1bi7MY-000123-AB <> *** frozen *** root@your-server.net (...)
Resumen de emails en cola
exim -bp | exiqsumm
Se mostrará
Count Volume Oldest Newest Domain ----- ------ ------ ------ ------ 16 27KB 46h 82m your-server.net --------------------------------------------------------------- 16 27KB 46h 82m TOTAL
Actividad actual de exim
exiwhat
783 daemon: -q1h, listening for SMTP on port xxx (IPv6 and IPv4) port xxx (IPv6 and IPv4) port xxx (IPv6 and IPv4) and for SMTPS on port xxx (IPv6 and IPv4)
Mostrar configuración de exim
exim -bP
Mostrar emails enviados desde remitente
exiqgrep -f usuario@dominio.tld
Mostrar emails para un destinatario
exiqgrep -r usuario@dominio.tld
Mostrar emails en cola más antiguos de n segundos (en este ejemplo 1h)
exiqgrep -o 3600
Mostrar emails en cola creados hace menos de n segundos (en este ejemplo 1h)
exiqgrep -y 3600
Comprobar la ruta de una direccion de email
exim -bt usuario@dominio.tld
test@gmail.com router = dnslookup, transport = remote_smtp host gmail-smtp-in.l.google.com [2a00:1450:400c:c08::1a] MX=5 host gmail-smtp-in.l.google.com [74.125.140.27] MX=5 host alt1.gmail-smtp-in.l.google.com [2a00:1450:4010:c03::1a] MX=10 host alt1.gmail-smtp-in.l.google.com [209.85.233.27] MX=10 host alt2.gmail-smtp-in.l.google.com [2404:6800:4003:c01::1a] MX=20 host alt2.gmail-smtp-in.l.google.com [74.125.130.27] MX=20 host alt3.gmail-smtp-in.l.google.com [2404:6800:4008:c03::1a] MX=30 host alt3.gmail-smtp-in.l.google.com [74.125.203.27] MX=30 host alt4.gmail-smtp-in.l.google.com [2404:6800:4008:c01::1a] MX=40 host alt4.gmail-smtp-in.l.google.com [173.194.72.26] MX=40
Procesar los emails en cola
exim -q -v
Eliminar un email concreto de la cola
exim -Mrm <id_email>
Message 1bi4YL-000123-AB has been removed
Congelar un email (no se enviará)
exim -Mf <id_email>
Procesar un email tanto si está congelado como si no (se enviará)
exim -M <id_email>
Forzar el fallo de un email y retornar el estado «cancelado por administrador»
exim -Mg <id_email>
Eliminar todos los emails congelados
exiqgrep -z -i | xargs exim -Mrm
Message 1bi4YL-000123-AB has been removed (...) Message 1bi7MY-000123-AB has been removed
Eliminar emails más antiguos de n segundos (en este ejemplo 1h)
exiqgrep -o 3600 -i | xargs exim -Mrm
Congelar todos los emails de un remitente
exiqgrep -i -f usuario@dominio.tld | xargs exim -Mf
Mostrar las cabeceras de un email
exim -Mvh <id_email>
Mostrar el contenido del email
exim -Mvb <id_email>
Mostrar el log de un email
exim -Mvl <id_email>
Añadir un destinatario a un email
exim -Mar <id_email> usuario@dominio.tld [ <usuario2@dominio.tld> [...] ]
Modificar el remitente de un email
exim -Mes <id_email> usuario@dominio.tld
Parar exim (diferentes maneras según tu sistema operativo)
systemctl stop eximd.service
service exim stop
/etc/init.d/exim stop
Iniciar exim (según tu sistema operativo)
systemctl start eximd.service
service exim start
/etc/init.d/exim start
Reiniciar exim (según tu sistema operativo)
systemctl restart eximd.service
service exim restart
/etc/init.d/exim restart
Comprobar el estado de exim (según tu sistema operativo)
systemctl status eximd.service
service exim status
/etc/init.d/exim status
muy buen resumen de los comandos Pedro
muy utiles
saludos