====== Migrace pošty pomocí IMAPu ======
Pokud potřebujeme migrovat mailboxy mezi servery, můžeme na to velmi jednoduše využít protokol IMAP pomocí skriptu **imapcopy** \\
===== Instalace =====
* Stáhneme balíček se skripty = [[http://imaputils.googlecode.com/files/imaputils-1.0.2.tar.gz]], pokud není dostupné, můžete stáhnout skripty z {{:howto:hosting:imaptool.tar|našeho mirroru}}.
* V debianu je potřeba doinstalovat balíček ''%%libio-socket-ssl-perl%%''
===== Migrace pošty =====
* Na novém serveru založíme čisté mailboxy
* Napíšeme si bashový skript na migraci mailboxů (pokud jich migrujeme více, jinak nám postačí jen zadání příkazu)
#!/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 za''%%localhost:143%%'', čímž bude celá operace rychlejší.//
* Po spuštění skriptu uvidíme zhruba tento výpis - zde ukazuji jen migraci jednoho mailboxu:
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
* Hotovo. Nyní se přihlaste pomocí webmailu nebo poštovního klienta a zkontrolujte, jestli je obsah schránky kompletní.
Pokud potřebujete jen aktualizovat změny do již přemigrované schránky, můžete ještě do příkazového řádku přidat parametr **-U**
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 put copied mailboxes under a root mailbox
-A copy to local mailbox from scrmbx
-x source (eg, -x '. INBOX.'
-y destination
-i initialize mailbox (remove existing messages first
-M 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
-T copy custom flags (eg, $Label1,$MDNSent,etc)
-a copy only messages after this date
-b copy only messages before this date
-X Skip any message exceeding this size
-U update mode, don't copy messages that already exist
-B Starting point for message fetch
-E Ending point for message fetch