IMAP-Weiterleitungen mit pop3toimap als Ersatz für SMTP-Weiterleitungen

Abstract

Bei Weiterleitungen mit SMTP tauchen häufig Probleme auf, z.B. durch aggressive Antispamlösungen oder strikte SPF-Einträge von Maildomains mit den Empfänger-Mailservern. Ein eleganter Workaround ist z.B. das kleine Programm pop3toimap.

Bei Weiterleitungen mit SMTP tauchen häufig Probleme auf, z.B. durch aggressive Antispamlösungen oder strikte SPF-Einträge von Maildomains mit den Empfänger-Mailservern. Ein eleganter Workaround ist z.B. das kleine Programm pop3toimap aus den IMAP Tools.

Weiterleitungen mit SMTP – ob nun direkt durch den Mailserver oder über z.B. SIEVE – sind ein häufig genutztes Mailfeature. Das ist auch in Ordnung, solange sich die Weiterleitungsmailadresse auf den eigenen Mailsystemen befindet. Befindet sich die Adresse allerdings auf anderen Mailservern, werden Mails manchmal abgelehnt, da die Sender-Domains z.B. strikte SPF-EInträge (Sender Policy Framework) im DNS besitzen und deren Existenz auf dem Empfänger-Mailserver überprüft werden. Striktes SPF bricht SMTP Weiterleitungen.

Noch übler kann es werden, wenn trotz größter Bemühungen Spam weitergeleitet wird. Dadurch kann die IP-Adresse der Weiterleitungsmailserver z.B. in RBLS landen.

Viele Mailuser sind überfordert mit Antispam-Einstellungen, oder es ist gar nicht möglich, diese so zu verfeinern, dass auch wirkliche jede Mail am Ende angenommen wird. Einige Provider versuchen das Problem zu umgehen, indem sie spezielle Weiterleitungsdienste integrieren, um zumindest über eine Bounce-Mail dafür zu sorgen, dass ein Mailuser erfährt, dass eine bestimmte Mail nicht weitergeleitet werden konnte.

Die bessere Lösung ist ein automatischer Abholdienst, z.B. über POP3 auf dem End-Mailserver. Dort wird z.B. ein Get/Fetchmail per cron aufgesetzt, der ein Mailkonto leert und Mails in eine andere Mailbox einliefert. Wird ein solcher Abholdienst nicht angeboten, bleiben allerdings nur SMTP-Weiterleitungen mit den bereits geschilderten Problemen.

Eine mögliche Lösung ist nun, auf dem Weiterleitungsserver (oder anderswo) einen Dienst zu installieren, der ein Mailkonto per POP3 abfragt und Mails auf einem beliebigen anderen IMAP-Mailkonto ablegt. Hierfür kann das kleine Perl-Programm pop3toimap benutzt werden.

Ein Aufruf von iu-pop3toimap -h gibt die Optionen des Programms aus:

-p <POP3 host/user/password>
-i <IMAP host/user/password>
-u <input file>
-d debug mode
-n <notify e-mail address>
-m <imap mailbox>  Default is INBOX. Format is mbx1/mbx2/mbx3
-r delete POP3 message after migrating to IMAP
-t <timeout>
-L <logfile>
-I show IMAP protocol exchanges
-h print this message

Ein Aufruf in der Kommandozeile würde also für einen User/Account z.B. so aussehen:

iu-pop3toimap -r -m Forward -p source-pop.popserver.com:995/robert@pop.com/passpop -i target-imap.imapserver.com:993/robert@imap.com/passimap

Mit -u könnte man auch eine Liste mit den entsprechenden User/Passwort-Daten angeben.

Es wäre übertrieben, dieses Setup als Lösung aller Probleme mit SMTP-Weiterleitungen zu bezeichnen, auch konnte ich nicht jeden existierenden POP3- bzw. IMAP-Server testen; ein Dovecot-Server 2.1.17 auf Ziel und Quelle funktionierte wie erwartet problemlos. Die Lösung ist auch für andere Zwecke denkbar, z.B. als Archive-Lösungsansatz. Zusätzlich kann sie natürlich auch vom Mailuser selbst installiert werden. In jedem Fall hat ein Postmaster eine Option mehr, Probleme zu lösen, wie sie im Alltag nun mal auftauchen. Ein Koppelung an SIEVE mit der External-Pipe-Erweiterung wäre denkbar, mir wurde jedoch von den SIEVE-Entwicklern abgeraten. Es könnten sich mit dem Timing unerwünschte Nebenwirkungen einstellen.

Die Verwendung und Speicherung von Klartext-Passworten usw. ist ebenfalls ein grundsätzliches Problem. Wie auch immer, ich empfehle in jedem Fall, sich alle IMAP Tools ( Download http://code.google.com/p/imaputils/downloads/list ) mal anzusehen , denn dort sind weitere kleine Hilfsprogramme enthalten, die einem Admin im Alltag das Leben erleichtern.

Robert Schetterer, 12. January 2014