User Tools

Site Tools


doc:appunti:linux:sa:offlineimap3

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
doc/appunti/linux/sa/offlineimap3.1709914117.txt.gz · Last modified: 2024/03/08 17:08 by niccolo