Postfix Tools I

Eigentlich wollte ich heute was über UTF-8 und Perl schreiben aber dafür bin ich zu müde.. Daher lieber eine kurzer Abriss aus dem Mailserver Alltag:

Heute sollte ich einem Kunden eine Mailkommunikation nachvollziehbar machen. Es ging darum ob ein spezieller Absender tatsächlich an einen Empfänger versand hat oder nicht. Und wenn ja wann und wie oft. Dabei ist mir wieder einmal aufgefallen wie unübersichtlich die Postfix Logs werden können falls einiges durch rauscht.

Zeile 1000:
Sep  9 15:00:00 hostname1 postfix/smtpd[1234]: ABCDEF12345: client=123.dynamic-ip.net[123.123.123.123], sasl_method=LOGIN, sasl_username=sender@domain.tld
Sep  9 15:00:00 hostname1 postfix/qmgr[12341]: ABCDEF12345: from=<sender@domain.tld>, size=123456, nrcpt=123 (queue active)

Zeile 2000:
Sep  9 15:00:00 hostname1 postfix/smtp[123412]: ABCDEF12345: to=<recipient@otherdomain.tld>, relay=234.234.234.234[234.234.234.234]:25, delay=3, delays=2.7/0/0.02/0.2, dsn=2.6.0, status=sent (250 2.6.0 <123@hostsender.tld> Queued mail for delivery)

Natürlich lässt sich das leicht per “grep ABCDEF12345 /path/to/mail.log” sehen aber es waren wie gesagt nicht nur um eine einzelne Mail. D.h. erstmal alle IDs rausfinden und dann diese einzelnd greppen.. Das dauert und macht wenig Spaß. Da ich das irgendwie in letzter Zeit häufiger gemacht habe – hier nun ein kleines Perl-Skript, dass ein wenig Zeit sparen sollte.

Installation:

  1. Runterladen
  2. kopieren nach /usr/local/bin
  3. chmod +x /usr/local/bin/find-mail-communication.pl

Anwendung:
Und so kann man sich alle an “to@recipient.tld” geschickten Mails ausgeben lassen:
cat /path/to/mail.log | find-mail-communication.pl -t to@recipient.tld

Id:
  * 12312312312
Time:
  * Sep  9 16:00:00
From:
  * sender@domain.tld
To:
  * to@recipient.tld

Id:
  * 12312312313
Time:
  * Sep  9 17:00:00
From:
  * someone@outhere.tld
To:
  * to@recipient.tld
  * other@recipient.tld

Id:
  * 12312312314
Time:
  * Sep  9 18:00:00
From:
  * whomever@whatever.tld
To:
  * to@recipient.tld

Leave a Reply

CAPTCHA image