Pokud potřebujeme migrovat mailboxy mezi servery, můžeme na to velmi jednoduše využít protokol IMAP pomocí skriptu imapcopy
libio-socket-ssl-perl
#!/bin/bash /usr/local/bin/iu-copy -R -S src.server.cz:993/test@domena.cz/heslo -D dst.server.cz:993/test@domena.cz/heslo /usr/local/bin/iu-copy -R -S src.server.cz:993/test2@domena.cz/heslo -D dst.server.cz:993/test2@domena.cz/heslo /usr/local/bin/iu-copy -R -S src.server.cz:993/test3@domena.cz/heslo -D dst.server.cz:993/test3@domena.cz/heslo
Pokud spouštíme skript iu-copy přímo na serveru, kam migrujeme poštu, můžeme dst.server.cz:993 nahradit zalocalhost:143
, čímž bude celá operace rychlejší.
gandalf@sirius:~/bin# ./iu-copy -R -S iris.spoje.net:993/test@domena.cz/heslo -D localhost:143/test@domena.cz/heslo ./iu-copy starting Connected to iris.spoje.net on port 993 Authenticating to iris.spoje.net:993 as test@domena.cz Connected to localhost on port 143 Authenticating to localhost:143 as test@domena.cz Number of mailboxes to process: 6 Copied 3 messages to INBOX.Archiv.2014 Copied 1 messages to INBOX.Sent INBOX.Archiv mailbox is empty INBOX.Drafts mailbox is empty INBOX.Trash mailbox is empty Copied 2969 messages to INBOX Copied 2973 total messages
Pro úplnost ještě uvádím kompletní parametry skriptu iu-copy:
usage: iu-copy -S sourceHost/sourceUser/sourcePassword [/CRAM-MD5] -D destHost/destUser/destPassword [/CRAM-MD5] -d debug -I show IMAP protocol exchanges -L logfile -m mailbox list (eg "Inbox, Drafts, Notes". Default is all mailboxes) -R include submailboxes when used with -m -e exclude mailbox list -r remove msgs from source mbx after copying -p <mailbox> put copied mailboxes under a root mailbox -A <mailbox> copy to local mailbox from scrmbx -x <mbx delimiter [mbx prefix]> source (eg, -x '. INBOX.' -y <mbx delimiter [mbx prefix]> destination -i initialize mailbox (remove existing messages first -M <file> mailbox map file. Maps src mbxs to dst mbxs. Each line in the file should be 'src mbx:dst mbx' -q quiet mode (still writes to the logfile) -t <timeout in seconds> -T copy custom flags (eg, $Label1,$MDNSent,etc) -a <DD-MMM-YYYY> copy only messages after this date -b <DD-MMM-YYYY> copy only messages before this date -X <megabytes> Skip any message exceeding this size -U update mode, don't copy messages that already exist -B <msgnum> Starting point for message fetch -E <msgnum> Ending point for message fetch