Nützliche Kommandos des Mail Server Exim

Exim ist ein Mail-Transfer-Agent, der auf Unix-ähnlichen Betriebssystemen (z.B. Linux) zum Senden, Empfangen und Weiterleiten von E-Mail-Nachrichten verwendet wird. Exim ist eine freie Software, die unter der General Public License (GNU) angeboten wird. Der Mail-Transfer-Agent Exim wurde 1995 von Philip Hazel an der Universität von Cambridge entwickelt.

  • Um die Summe der in der Queue befindlichen Nachrichten zu erhalten:
exim -bpc
  • Eine Liste der Nachrichten aus der Queue ausgeben (Zeit in der Queue, Größe, Exim-ID, Absender, Empfänger):
exim -bp
  • Eine Zusammenfassung der Nachrichten aus der Queue ausgeben (Anzahl, Volumen, älteste, neueste, Domain und Summen):
exim -bp | exiqsumm
  • Ausgeben, was Exim gerade tut:
exiwhat
  • Testen, wie die E-Mail-Adresse angezeigt wird:
exim -bt mail@domain.com
  • Eine vorgetäuschte SMTP-Transaktion von der Kommandozeile ausführen, so als ob sie von der angegebenen IP-Adresse käme. Dadurch werden die Prüfungen, ACLs und Filter von Exim angezeigt, wie sie angewendet werden. Die Nachricht wird NICHT tatsächlich zugestellt:
exim -bh XXX.XXX.XX.XX
  • Zeigt alle Konfigurationseinstellungen von Exim an:
exim -bP

Durchsuchen der Queue mit exiqgrep

Exim enthält ein Dienstprogramm namens exiqgrep, mit dem man die Queue sehr gut durchsuchen kann.

  • Verwenden Sie -f, um die Queue nach Nachrichten eines bestimmten Absenders zu durchsuchen:
exiqgrep -f @domaincom
  • Verwenden Sie -r, um die Queue nach Nachrichten für einen bestimmten Empfänger/Domain zu durchsuchen:
exiqgrep -r @domain.com
  • Verwenden Sie -o, um Nachrichten auszugeben, die älter als die angegebene Anzahl von Sekunden sind. Zum Beispiel Nachrichten, die älter als 1 Tag sind:
exiqgrep -o 86400 […]
  • Verwenden Sie -y, um Meldungen auszugeben, die jünger als die angegebene Anzahl von Sekunden sind. Zum Beispiel Nachrichten, die weniger als eine Stunde alt sind:
exiqgrep -y 3600 […]

Verwenden Sie -z, um nur eingefrorene Nachrichten zu finden, oder -x, um nur nicht eingefrorene Nachrichten zu finden. Es gibt auch ein paar Flags, die die Anzeige der Ausgabe steuern.

  • Benutze -i, um nur die Exim-ID als Ergebnis einer der beiden oben genannten Suchen auszugeben:
exiqgrep -i [ -r | -f ] …
  • Verwenden Sie -c, um die Anzahl der Nachrichten auszugeben, die mit einer der obigen Suchen übereinstimmen:
exiqgrep -c …
  • Nur die Exim-ID der gesamten Queue ausgeben:
exiqgrep -i

Managing der Queue

  • Einen Queue Run starten
exim -q -v
  • Einen Queue Run nur für lokale Delivery starten:
exim -ql -v
  • Eine Nachricht aus der Queue löschen:
exim -Mrm [ … ]
  • Eine Nachricht einfrieren:
exim -Mf [ … ]
  • Eine Nachricht zustellen, ob sie eingefroren ist oder nicht, ob die Retry time erreicht wurde oder nicht:
exim -M [ … ]
  • Eine Nachricht zustellen, aber nur, wenn die Retry time erreicht ist:
exim -Mc [ … ]
  • Erzwingen, dass eine Nachricht fehlschlägt und als „cancelled by administrator“ zurückgesendet wird:
exim -Mg [ … ]
  • Alle eingefrorenen Nachrichten werden gelöscht:
exiqgrep -z -i | xargs exim -Mrm
  • Entfernen Sie alle Nachrichten, die älter als fünf Tage sind (86400 * 5 = 432000 Sekunden):
exiqgrep -o 432000 -i | xargs exim -Mrm
  • Einfrieren aller in der Queue befindlichen Nachrichten eines bestimmten Absenders:
exiqgrep -i -f luser@example.tld | xargs exim -Mf
  • Die Kopfzeilen einer Nachricht anzeigen:
exim -Mvh
  • Den Body einer Nachricht anzeigen:
exim -Mvb
  • Die Protokolle einer Nachricht anzeigen:
exim -Mvl