Mailsync assolve principalmente tre compiti:
sincronizza e-mail memorizzati in locale con e-mail memorizzati su un server
esegue la migrazione di mail box in un altro formato o su un altro server
verifica l'integrità di una mail box o cerca i doppioni
Mailsync distingue tra mail box in sé (un cosiddetto
store) e il collegamento tra due mail box (un
cosiddetto channel). La definizione degli
store e dei channel viene archiviata nel file ~/.mailsync.
Seguono alcuni esempi relativi agli store.
Una semplice definizione ha ad es. il seguente aspetto:
store saved-messages {
pat Mail/saved-messages
prefix Mail/
}
dove Mail/ è una sottodirectory nella directory home
dell'utente, contente una cartella con le e-mail, tra l'altro la cartella
saved-messages. Se si invoca mailsync
con il comando mailsync -m saved-messages
in saved-messages si avrà un indice con tutti i messaggi. Un altro esempio:
store localdir {
pat Mail/*
prefix Mail/
}
In questo caso invocando mailsync -m
localdir verranno elencati tutti i messaggi salvati sotto Mail/. Il comando
mailsync localdir elenca invece i
nomi delle cartelle. La specificazione di uno store sul server IMAP p.es. ha il seguente aspetto:
store imapinbox {
server {mail.edu.harvard.com/user=gulliver}
ref {mail.edu.harvard.com}
pat INBOX
}
Nell'esempio riportato sopra vengono semplicemente indirizzate il folder, ossia cartella principale sul server IMAP. Uno store per le sottocartelle assumerebbe il seguente aspetto:
store imapdir {
server {mail.edu.harvard.com/user=gulliver}
ref {mail.edu.harvard.com}
pat INBOX.*
prefix INBOX.
}
Se il server IMAP supporta connessioni cifrate, la specificazione del server dovrebbe essere modificata nel modo seguente:
server {mail.edu.bocconi.it/ssl/user=gulliver}
o (se non conoscete il certificato del server) in
server {mail.edu.bocconi.it/ssl/novalidate-cert/user=gulliver}
Il prefisso viene spiegato in seguito.
Ora le cartelle sotto Mail/ vanno
connesse alle sottodirectory sul server IMAP:
channel cartella localdir imapdir {
msinfo .mailsync.info
}
Mailsync utilizza il file msinfo per tenere traccia dei messaggi già sincronizzati.
Invocando mailsync cartella
si ottiene che:
la mail box venga allineata su entrambi gli host
il prefisso dai nomi delle cartelle che si creano durante il processo venga eliminato
le cartelle vengano sincronizzate a due a due (o create se ancora non esistenti)
La cartella INBOX.sent-mail sul server IMAP viene quindi
sincronizzata con la cartella locale Mail/sent-mail
(ciò presuppone le definizioni di cui sopra). Infine viene eseguita la
sincronizzazione delle singole cartelle nel modo seguente:
se il messaggio esiste su entrambi gli host, non succede niente
se il messaggio manca da una parte e si tratta di un messaggio nuovo, cioé non protocollato nel file msinfo, viene trasmesso lì dove manca
se il messaggio esiste solo su una parte e si tratta di un messaggio già vecchio ovvero già protocollato nel file msinfo, viene cancellato da lì (dato che il messaggio che esisteva è stato cancellato sull' altro host)
Per avere una vista di insieme a priori dei messaggi che verranno trasmessi
e quali cancellati durante la sincronizzazione, bisogna richiamare Mailsync
contemporaneamente con un channel ed uno store:
mailsync cartella localdir.
In tal maniera si avrà un elenco dei messaggi che sono nuovi sull'host
locale ed anche una lista di tutti i messaggi che verrebbero cancellati sul
lato server IMAP durante la sincronizzazione. Inversamente con
mailsync cartella imapdir
si ottiene un'elenco dei messaggi nuovi sul lato IMAP ed anche un'elenco
dei messaggi che verrebbero cancellati sull'host locale durante la sincronizzazione.
Nel caso si verifichi una perdita di dati, il modo più sicuro di procedere è quello i cancellare i relativi file di protocollo channel msinfo. In tal modo tutti i messaggi che esistono solo da una parte vengono considerati dei nuovi messaggi e verranno trasmessi durante la prossima sincronizzazione.
Saranno presi in considerazione per quanto riguarda la sincronizzazione solo quei messaggi che hanno una cosiddetta message ID. I messaggi sprovvisti di un tale identificativo verranno ignorati, cioé non verranno né trasmessi né cancellati. Spesso la mancanza della message ID è dovuta a errori da ricondurre a dei programmi in fase di invio o creazione delle e-mail.
Su determinati server IMAP la cartella principale viene indirizzata tramite
INBOX, e le sottocartelle tramite un nome qualsiasi
(a differenza di INBOX ed INBOX.name). In tal modo per questi server
IMAP non è possibile specificare un campione esclusivamente per le
sottocartelle.
I driver per mail box (c-client) utilizzati da Mailsync,
una volta trasmessi correttamente i messaggi ad un server IMAP,
impostano una speciale indicazione di stato (status flag) per cui alcuni
programmi di posta elettronica come mutt non riescono ad riconoscere i
nuovi messaggi come tali. Per evitare che ciò avvenga vi è l'opzione -n.