47.7. Introduzione a mailsync

Mailsync assolve principalmente tre compiti:

47.7.1. Configurazione ed utilizzo

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.

47.7.2. Possibili difficoltà

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.

47.7.3. Ulteriore documentazione

Nel README contenuto nel pacchetto mailsync sotto /usr/share/doc/packages/mailsync/ sono reperibili ulteriori informazioni ed indicazioni. Di particolare interesse in questo contesto è anche l'RFC 2076 «Common Internet Message Headers».