Kategorien

Druckansicht des Beitrags Druckansicht des Beitrags

Mailzustellung nachverfolgen

Wie mein Mailsetup aussieht habe ich in einer ausführlichen Artikelserie zu Dovecot, Exim, OpenLDAP, getmail und dspam beschrieben. Bei einigen Accounts kam es in letzter Zeit jedoch dazu, dass Mailnachrichten nur unvollständig zugestellt wurden. Dabei ging nicht die Nachricht an sich verloren, sondern die Nachricht wurde einfach abgeschnitten, so dass z.B. der Nachrichtentext unvollständig war oder Anhänge fehlten. Diesem Problem will ich nun auf den Grund gehen. Die Einträge in den Logdateien lassen nicht auf Fehler schließen:

Exim (unter /var/log/exim/exim_main.log):
2014-02-26 09:18:37 1WIZhL-0007rH-JF <= **@**.com
H=exprod6og101.obsmtp.com [64.18.1.181] P=smtps
X=TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256 S=118913
id=OF22A8285E.635A0C34-ONC1257C8B.002D8787-C1257C8B.002DA1DC@**.COM
2014-02-26 09:18:37 1WIZhL-0007rH-JF => ** <**@**>
R=local_user T=dovecot_delivery
2014-02-26 09:18:37 1WIZhL-0007rH-JF Completed
2014-02-28 09:28:24 1WJInu-0001M5-NU <= **@**.com
H=exprod6og118.obsmtp.com [64.18.1.233] P=smtps
X=TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256 S=257948
id=OF8652FF3E.7990F5DE-ONC1257C8D.002DB28B-C1257C8D.002E87A3@**.COM
2014-02-28 09:28:24 1WJInu-0001M5-NU => ** <**@**>
R=local_user T=dovecot_delivery
2014-02-28 09:28:24 1WJInu-0001M5-NU Completed
 
Dspam (unter /var/spool/dspam/data/user/user.log):
1393402717 I *@**.com 9,530da35d36871725616547
Sunject! Delivered
<OF22A8285E.635A0C34-ONC1257C8B.002D8787-C1257C8B.002DA1DC@**.COM>
1393576104 I *@**.com 9,531048a836871554010661
Re: Subject Delivered
<OF8652FF3E.7990F5DE-ONC1257C8D.002DB28B-C1257C8D.002E87A3@**.COM>
 
Dovecot (/var/log/dovecot-deliver.log):
2014-02-26 09:18:37 lda(*@*@**): Info: sieve:
msgid=<OF22A8285E.635A0C34-ONC1257C8B.002D8787-C1257C8B.002DA1DC@**.COM>:
stored mail into mailbox 'INBOX'
2014-02-28 09:28:24 lda(*@*@**): Info: sieve:
msgid=<OF8652FF3E.7990F5DE-ONC1257C8D.002DB28B-C1257C8D.002E87A3@**.COM>:
stored mail into mailbox 'INBOX'

Da der Fehler kann sich irgendwo in der Kette zwischen exim, dspam und dem Dovecot-LDA befinden kann, teste ich nun den Ansatz, die Nachricht nach jedem Zwischenschritt zu speichern:
Ursprüngliche Nachricht an Exim => /var/log/msg_id.exim
Nach Weiterverarbeitung durch Dspam /var/log/msg_id.dspam
Nach Zustellung durch Dovecot-LDA => im Mailverzeichnis des Benutzers

Für die Speicherung der Zwischenschritte habe ich deshalb folgendes Skript angelegt:

#!/bin/bash
/usr/bin/tee -a "/var/log/mails/$1.exim" | /usr/bin/dspamc --client --deliver=innocent,spam --user "$2" --stdout | /usr/bin/tee -a "/var/log/mails/$1.dspam"

In der Exim Konfigurationsdatei exim.conf passen wir den Paramter transport_filter an, der normalerweise dspam aufruft:

  #transport_filter = /usr/bin/dspamc --client --deliver=innocent,spam --user "GET_LOCAL_MAIL" --stdout
  transport_filter = /etc/exim/savemail "$message_id" "GET_LOCAL_MAIL"

Mal schauen, wo sich nun der Fehler versteckt..

1 comment to Mailzustellung nachverfolgen

Leave a Reply to Markus Effinger Cancel reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>