47.7. Introduction à mailsync

En principe, Mailsync s'utilise pour les trois tâches suivantes :

47.7.1. Configuration et utilisation

Mailsync fait la distinction entre la boîte aux lettres elle-même (appelée store) et la liaison entre deux boîtes aux lettres (channel). Les définitions de stores et de channels sont enregistrées dans le fichier ~/.mailsync. Vous trouverez ci-dessous la présentation de quelques exemples de stores.

Voici une définition simple :

				
store saved-messages { 
   pat Mail/saved-messages
prefix  Mail/
}

Mail/ est un sous-répertoire dans le répertoire personnel (/home) de l'utilisateur qui contient des dossiers de courrier électronique, dont entre autres le dossier saved-messages. En appelant mailsync via la commande mailsync -m saved-messages, vous obtenez un index de tous les messages contenus dans saved-messages. Si la définition suivante est donnée :

				
store localdir { 
pat     Mail/* 
prefix  Mail/ 
} 

la commande mailsync -m localdir affiche une liste de tous les messages qui sont enregistrés sous Mail/. En revanche, la commande mailsync localdir affiche une liste des noms des dossiers. On spécifie un store sur un serveur IMAP ainsi :

				
store imapinbox {
server {mail.edu.harvard.com/user=gulliver}
ref    {mail.edu.harvard.com}
pat    INBOX 
}

Dans ce cas de figure, seul le dossier principal est adressé sur le serveur IMAP ; un store pour les sous-dossiers ressemble à ceci :

				
store imapdir {
server {mail.edu.harvard.com/user=gulliver}
ref {mail.edu.harvard.com}
pat INBOX.*
prefix  INBOX.
}

Si le serveur IMAP supporte des liaisons chiffrées, il faudra modifier la spécification du serveur comme suit :

				
server {mail.edu.harvard.com/ssl/user=gulliver}

ou bien, si le certificat serveur n'est pas connu :

				
server {mail.edu.harvard.com/ssl/novalidate-cert/user=gulliver}

Le préfixe est expliqué plus tard.

Maintenant, on veut connecter les dossiers se trouvant sous Mail/ aux sous-répertoires sur le serveur IMAP :

				
channel folder localdir imapdir {
msinfo .mailsync.info
} 

mailsync utilise le fichier de msinfo pour conserver une trace des messages qui ont déjà été synchronisés.

La commande mailsync dossier a les conséquences suivantes :

  • Le type de boîte aux lettres (pattern) est élargi des deux côtés.

  • Le préfixe (prefix) résultant de chaque nom de dossier est éliminé.

  • Les dossiers sont synchronisés (ou crées, s'ils n'existaient pas) par paires.

De même façon, le dossier INBOX.sent-mail sur le serveur IMAP est synchronisé avec le dossier local Mail/sent-mail (à condition de répondre aux définitions ci-dessus). La synchronisation entre les différents dossiers fonctionnent de la manière suivante :

  • Si un message existe déjà des deux côtés, il ne se passe rien.

  • Si le message manque d'un côté et s'il s'agit d'un nouveau message (non consigné dans le fichier de msinfo), il y sera transféré.

  • Si le message n'existe que d'un côté et s'il s'agit d'un ancien message (déjà consigné dans le fichier de msinfo), il y sera effacé (étant donné qu'il existait auparavant de l'autre côté et qu'il y a été effacé).

Pour savoir d'avance quels messages seront transmis et lesquels seront effacés lors d'une synchronisation, on appelle mailsync avec un « channel » et un « store » avec : mailsync dossier localdir. Il en résulte une liste de tous les messages qui sont localement nouveaux ainsi qu'une liste de tous les messages qui seraient effacés du côté de IMAP lors d'une synchronisation. De la même façon, la commande mailsync dossier imapdir affiche une liste de tous les nouveaux messages du côté de IMAP ainsi qu'une liste de tous les messages qui seraient effacés localement lors d'une synchronisation.

47.7.2. Problèmes éventuels

Dans le cas d'une perte de données, la procédure la plus sûre est d'effacer le fichier de protocole du « channel » correspondant de msinfo. Il en résulte que tous les messages qui n'existent que d'un seul côté sont considérés comme nouveaux et seront transmis lors de la prochaine synchronisation.

Seuls les messages portant un identificateur message sont pris en compte par la synchronisation tandis que ceux n'ayant pas d'identificateur message sont tout simplement ignorés ; ils ne sont ni transmis ni effacés. Un identificateur de message manquant est normalement le résultat de programmes défectueux dans le processus de remise ou de génération du courrier.

Sur certains serveurs IMAP, le dossier principal est appelé par INBOX et les sous-dossiers sont appelés par un nom quelconque (contrairement à INBOX et INBOX.name). C'est la raison pour laquelle il n'est pas possible de spécifier un modèle exclusif de sous-dossiers pour de tels serveurs IMAP.

Les pilotes de boîtes aux lettres (c-client) qu'utilise mailsync placent, lorsque les messages ont été transmis sur un serveur IMAP, un drapeau d'état spécial, rendant impossible pour certains programmes de messagerie électronique, comme mutt, de reconnaître qu'un message est nouveau. Désactivez ce drapeau d'état spécial avec l'option -n.

47.7.3. Informations complémentaires

Le fichier README contenu dans le paquetage mailsync contient des informations et conseils supplémentaires. Dans ce contexte, le RFC 2076 « Common Internet Message Headers » est particulièrement intéressant.