En principe, Mailsync s'utilise pour les trois tâches suivantes :
La synchronisation de courriers électroniques enregistrés localement avec des courriers électroniques enregistrés sur un serveur.
La migration de boîtes aux lettres dans un format différent ou vers un autre serveur.
Le contrôle de l'intégrité d'une boîte aux lettres ou la recherche de doubles.
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.
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.