This is an old revision of the document!
Sincronizzazione IMAP con offlineimap3
Con il tool offlineimap3 è possibile tenere sincronizzati due account IMAP in modo bidirezionale. Ovviamente è possibile utilizzare lo strumento anche per migrare un account IMAP da un server ad un altro, in step incrementali.
Problema UID validity
Lo UIDVALIDITY è un intero 32 bit che identifica in modo univoco una cartella IMAP. In genere non cambia da un accesso ai successivi, a meno che la cartella non sia stata eliminata e poi creata nuovamente. Un altro motivo per cui la UIDVALIDITY può cambiare ad ogni accesso è che sul server si sia esaurita la quota disco, per cui il server IMAP non è in grado di salvare la UIDVALIDITY corrente e ne genera una nuova ad ogni sessione.
offlineimap3 utilizza lo UIDVALIDITY della cartella e lo UID di ogni messaggio per sapere se il messaggio è già stato sincronizzato da un server all'altro, nel caso in cui venga riscontrata un cambiamento fra il valore fornito dal server IMAP e il valore memorizzato in una sincronizzazione precedente viene generato un messaggio di errore del tipo:
UID validity problem for folder INBOX (repo Manitu) (saved 1121762284; got 709908459);
Lo UIDVALIDITY su un sistema GNU/Linux con server IMAP Courier viene memorizzato nel file $HOME/Maildir/courierimapuiddb.
Lo UIDVALIDITY su un sistema GNU/Linux con server IMAP Dovecot viene memorizzato (in esadecimale) nel file $HOME/Maildir/dovecot-uidvalidity, viene anche creato un file di lunghezza zero con nome del tipo $HOME/Maildir/dovecot-uidvalidity.[uid_hex].
Alla prima esecuzione di offlineimap3 gli UIDVALIDITY dei due server in sincronizzazione vengono memorizzati in file del tipo $HOME/.offlineimap/Repository-[SERVER_NAME]/FolderValidity/[FOLDER_NAME].
Per interrogare un server IMAP circa la UIDVALIDITY di una cartella si possono usare i seguenti comandi:
telnet imap.server.org 143
a1 CAPABILITY a2 LOGIN login_name MySecret a3 LIST "" "*" a4 SELECT INBOX ... * 242 EXISTS * 0 RECENT * OK [UIDVALIDITY 1195040922] Ok ... a7 LOGOUT