Mailboxen mit IMAP TOOLS zwischen IMAP Servern verschieben
Version 1.0
Author: Falko Timme <ft [at] falkotimme [dot] com>, Christian Schmalfeld <c [dot] schmalfeld [at] projektfarm [dot] de>
Dieses How-to erklärt, wie man mit Hilfe von IMAP TOOLS Mailboxen zwischen IMAP Servern verschieben können. IMAP TOOLS ist eine Sammlung von Perl Scripts welche es Ihnen erlaubt, diverse Aktionen mit IMAP aber auch POP3 Servern durchzuführen. In diesem Artikel werde ich mich auf die Skripte imapcopy.pl (kopiert Nachrichten und Mailboxen von einem IMAP Server auf den anderen) und pop3toimap.pl (kopiert POP3 Nachrichten auf einen IMAP Server) konzentrieren. Beide Skripts unterstützen SSL. Wählen Sie Port 993 (995 für POP3) aus um eine SSL Verbindung zu initiieren. Ist der Port 143 (110 für POP3) werden sie versuchen eine nicht-SSL Verbindung herzustellen. Mit jedem anderen Wert wird der Port darauf getestet ob er SSL Verbindungen unterstützt. Ist dies der Fall, wird SSL benutzt, um die Verbindung herzustellen, andernfalls nicht.
Für die Inhalte dieses Tutorials gebe ich keinerlei Garantie!
1 Vorbemerkung
Ich benutze in diesem Fall zwei Server:
- server1.example.com (Quelle)
- server2.example.com (Ziel)
Ich möchte die Mailbox sales@example.com (Benutzername: sales@example.com, Passwort: secret) auf dem Server server1.example.com zur Mailbox sales@example.com auf dem Server server2.example.com verschieben (Benutzername und Passwort wie die selben wie auf server1.example.com).
2 Vor dem Start
Werfen Sie vor dem Start einen Blick in beide Mailboxen um zu sehen, was sie beinhalten (Sie können dies mit einem Email Programm wie Outlook, Thunderbird, oder einem web-basierten Email PRogramm wie Squirrelmail tun – Ich benutze in diesem Fall Squirrelmail).
server1.example.com:
server2.example.com:
Nach dem Verschieben sollten die drei Nachrichten auf server1.example.com auf server2.example.com verfügbar sein.
3 Installation von IMAP TOOLS
Es macht keinen Unterschied ob Sie IMAP TOOLS auf server1.example.com oder server2.example.com installieren – Sie können sie genausogut auf einem dritten, unbeteiligten Server installieren.
Laden Sie die IMAP TOOLS Skripts wie folgt in das /usr/local/imap_tools/ Verzeichnis herunter:
cd /usr/local/
mkdir imap_tools
cd imap_tools
wget http://www.athensfbc.com/imap_tools/files/imap_tools_V1.105.tar.gz
tar xvfz imap_tools_V1.105.tar.gz
Nun müssen Sie die Perl Skripts ausführbar machen:
chmod +x /usr/local/imap_tools/*.pl
4 Emails mit imapcopy.pl von einem IMAP Server auf einen anderen IMAP Server verschieben
Die Benutzung von imapcopy.pl läuft wie folgt:
/usr/local/imap_tools/imapcopy.pl -S host1[:port]/user1/password1 -D host2[:port]/user2/password2
Der Befehl, um Emails von sales@example.com auf server1.example.com nach sales@example.com auf server2.example.com lautet demnach:
/usr/local/imap_tools/imapcopy.pl -S server1.example.com/sales@example.com/secret -D server2.example.com/sales@example.com/secret
Hier ist eine Beispielausgabe:
root@server1:/usr/local/imap_tools# /usr/local/imap_tool/imapcopy.pl -S server1.example.com/sales@example.com/secret -D server2.example.com/sales@example.com/secret
/usr/local/imap_tools/imapcopy.pl starting
Connected to server1.example.com on port 143
Authenticating to server1.example.com as sales@example.com
Connected to server2.example.com on port 143
Authenticating to server2.example.com as sales@example.com
Number of mailboxes to process: 5
Drafts mailbox is empty
Junk mailbox is empty
Trash mailbox is empty
Sent mailbox is empty
Copied 3 messages to INBOX
Copied 3 total messages
root@server1:/usr/local/imap_tools#
Auf dem Zielserver (server2.example.com) sollten Sie nun die Nachrichten vom Quellserver sehen können server1.example.com:
server2.example.com:
5 Emails mit pop3toimap.pl von einem POP3 Server auf einen IMAP Server verschieben
Die Benutzung von pop3toimap.pl läuft wie folgt:
/usr/local/imap_tools/pop3toimap.pl -p POP3host[:port] -i IMAPhost[:port] -u users_file
users_file hat das folgende Format:
popUsername password imapUsername password
Erstellen Sie die Datei /usr/local/imap_tools/users_file, welche die Login Daten enthält:
vi /usr/local/imap_tools/users_file
sales@example.com secret sales@example.com secret |
Der Befehl um Emails von sales@example.com auf dem POP3 Server server1.example.com nach sales@example.com auf dem IMAP Server server2.example.com zu verschieben lautet demnach:
/usr/local/imap_tools/pop3toimap.pl -p server1.example.com -i server2.example.com -u /usr/local/imap_tools/users_file
Erhalten Sie Fehlermeldungen wie
Unexpected response to SELECT INBOX. command: 1 NO Mailbox does not exist, or must be subscribed to.
unexpected APPEND response: 1 NO Access denied for APPEND on INBOX. (ACL „i“ required)
öffnen Sie pop3toimap.pl…
vi /usr/local/imap_tools/pop3toimap.pl
… kommentieren Sie Zeile 123 aus ($mailbox = ‚INBOX‘ unless $mailbox;) und fügen Zeile 124 hinzu ($mailbox = ‚INBOX‘;):
[...] foreach $msgnum ( @popMsgList ) { if ( $range ) { Log("msgnum $msgnum") if $debug; next if $msgnum < $lower; next if $msgnum > $upper; } Log("Fetching POP message $msgnum") if $debug; $msg = getPOPMsg( $msgnum, $p_conn ); getFlag( $msg, $flag ); getDate( $msg, $date ); next if $msg eq ''; #$mailbox = 'INBOX' unless $mailbox; $mailbox = 'INBOX'; selectMbx( $mailbox, $i_conn ); if ( insertMsg(*msg, $mailbox, $date, $flag, $i_conn ) ) { $copied++; $grandTotal++; Log("$copied messages migrated") if $copied/100 == int($copied/100); # Delete the message from the POP server if the delete flag is set deletePOPMsg( $msgnum, $p_conn ) if $delete; } } [...] |
Benutzen Sie dann erneut den
/usr/local/imap_tools/pop3toimap.pl -p server1.example.com -i server2.example.com -u /usr/local/imap_tools/users_file
Befehl.
So sieht eine Beispielausgabe aus:
root@server1:/usr/local/imap_tools# /usr/local/imap_tools/pop3toimap.pl -p server1.example.com -i server2.example.com -u /usr/local/imap_tools/users_file
pop3toimap 1.3 starting
There are 1 users to be migrated
Connected to server1.example.com on port 110
Connected to server2.example.com on port 143
Migrating sales@example.com on server1.example.com to sales@example.com on server2.example.com (3 messages)
Summary of POP3 -> IMAP migration
Users migrated 1
Total messages 3
Total bytes 2912
root@server1:/usr/local/imap_tools#
Auf dem Zielserver (server2.example.com) sollten Sie nun Emails von server1.example.com sehen können:
server2.example.com:
6 Links
- IMAP TOOLS: http://www.athensfbc.com/imap_tools/