Trasferire mail da un account ad un altro

Dovendo effettuare il trasferimento delle mail contenute su di un account di posta verso un altro, è possibile utilizzare il programma imapsync. imapsync, permette una sincronizzazione “monodirezionale”, ma eseguendolo in seconda istanza con i parametri di server sorgente e server di destinazione invertiti, si può ottene una sincronizzazione bidirezionale. imapsync, come si può intuire dal suo nome, sfrutta il protocollo imap, che è uno standard, pertanto è un metodo generale, che può essere utilizzato per migrazioni tra server che supportino il protocollo imap. imapsync, può essere interrotto in ogni istante attraverso la combinazione di tasti ctrl-c. Ad un successivo riavvio del programma, utilizzando gli stessi parametri, la sincronizzazione riprenderà dove era stata interrotta, quindi non serve preoccuparsi della creazione di duplicati o della perdita di messaggi. Durante il suo funzionamento, il programma fornisce informazioni sullo stato di avanzamento del trasferimento tra cui: messaggi copiati, giorno e ora in cui si stima che la sincronizzazione verrà completata, messaggi restanti alla conclusione della sincronizzazione. Al termine della sincronizzazione o dopo l’interruzione con combinazione ctrl-c, viene mostrato un riepilogo delle operazioni svolte durante l’esecuzione del programma. imapsync è opensource, ma non sono disponibili pacchetti precompilati (per linux) o eseguibili gratuiti (o meglio, non lo sono più). Il binario (o pacchetto) è disponibile a pagamento, ma essendo il codice opensource, si può optare per il suo download e compilazione. Il codice sorgente può essere scaricato da github. Su sistemi Ubuntu, l’installazione dei prerequisiti (l’operazione più “complessa”) è molto semplice. La compilazione e l’installazione avviene tramite l’utilizzo di due brevi comandi da shell. Il tempo di sincronizzazione, dipende dalla velocità della connessione internet. Se si esegue il programma all’interno di una rete dove è disponibile una connessione ADSL, la velocità di trasferimento è limitata dalla banda di upload (generalmente attorno ai 512 Kbit/s->40KB/sec); server sorgente e destinazione non dialogano direttamente fra loro, ma tramite la macchina che esegue imapsync Se si necessità di migrare grosse quantità di dati, e si è stretti con i tempi, si può optare per il noleggio di un server dedicato. Tali server, sono collegati ad internet tramite una rete in fibra (generalmente 100Mbit). Si possono trovare sul mercato dei server poco potenti e molto economici (10 Euro/mese), che comunque, per l’esecuzione di questo tipo di operazioni sono più che adeguati. Se si opta per una soluzione di questo tipo verificare:

 

1 - Banda minima garantita (best effort generalmente va comunque bene)

2 - Massima quantità di GB  compresi nell’offerta (questa quantità non è generlamente illimitata, ma è comunque abbondante; solo in Italia il costo al GB della banda è assurdo, all’estero costa veramente poco). Prestare attenzione perchè il costo della banda potrebbe essere un tanto al GB, generalmente comunque pochi centesimi.

 


Esempio di utilizzo e descrizione dei comandi del programma

 

imapsync \

--useheader "Date" --useheader "Message-ID" --useheader "Subject" \

    --host1 "192.168.1.30" \

    --port1 993 \

    --ssl1 \

--user1 "Username1" \

--password1 "NonTeLaDico"

 

--host2 "imap.gmail.com" \

--port2 993 \

--ssl2

--user2 "Username2" \

--password2 "NonTeLaDico" \

 

--prefix2 "[Zimbra]/" \

 

--maxage 255 --minage 12

 

Sincronizzo la posta elettronica ricevuta dal 01/01/2013 al 31/08/2013. In pratica i messaggi contenuti in questo arco temporale, vengono copiati dal server 192.168.1.30 (Zimbra) al server imap.gmail.com (GMAIL).

 

--useheader "Date" --useheader "Message-ID" --useheader "Subject" \

I messaggi vengono “identificati” in base all’header della data, del Message-ID e del Subject. In sostanza definisco il metodo attraverso il quale il programma confronterà i messaggi tra i due server.

 

--host1 "192.168.1.30" \

Specifico l’host “sorgente”

 

--port1 993 \

Indico la porta IMAP dell’host sorgente

 

--ssl1 \

Uso imaps, quindi crittografia ssl (per l’host sorgente)

 

--user1 "Username1" \

Specifico il nome utente con il quale connettermi al server

 

--password1 "NonTeLaDico"

Specifico la password per il login

 

--host2 "imap.gmail.com" \

--port2 993 \

--ssl2

--user2 "Username2" \

--password2 "NonTeLaDico" \

 

Queste istruzioni sono relative al server di destinazione. Funzionano in modo identico a quelle per il server sorgente

 

--prefix2 "[Zimbra]/" \

Le cartelle del server sorgente, verranno ricreate sul server di destinazione con l’aggiunta del prefisso indicato (ad sempio se --prefix2 “[Zimbra]/”, la cartella inbox, verrà ricreata sul server di destinazione come [Zimbra]/Inbox)

 

--maxage 255 --minage 11

Indico l’intervallo temporale all’interno del quale effettuare la sincronizzazione. Nel mio caso, sono interessato all’intervallo temporale compreso tra le seguenti date: 01/01/2013 al 31/08/2013. Oggi è il 13/09/2013.

 

maxage lo calcolo nel seguente modo

 

Gennaio = 31

Febbraio = 28

Marzo = 31

Aprile = 30

Maggio = 31

Giugno = 30

Luglio = 31

Agosto = 31

13 -> i giorni trascorsi dall’inizio del mese corrente

 

Sommo queste quantià e sottraggo il 1 gennaio. Quindi:

31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 +13 -1 = 255

 

Per calcolare minage

 

Agosto = 31

13 -> i giorni trascrosi dall’inizio del mese corrente

 

Sommo queste quantità sottraggo il 31 agosto e un’ulteriore unità:


31 + 13 - 31 - 1 = 12