27.7. Introduction à mailsync

mailsync est principalement adapté aux trois tâches suivantes :

27.7.1. Configuration et utilisation

mailsync distingue la boîte aux lettres elle-même (le magasin) de la connexion entre deux boîtes aux lettres (le canal). Les définitions des magasins et des canaux se trouvent dans ~/.mailsync. Les paragraphes qui suivent donnent quelques exemples de magasins.

Une définition simple peut se présenter sous la forme suivante :


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

Mail/ est un sous-répertoire du répertoire personnel de l'utilisateur qui contient des dossiers de messages électroniques, y compris le dossier saved-messages. Si mailsync est lancé avec mailsync -m saved-messages, il fournit un index de tous les messages de saved-messages. Si la définition suivante est donnée


store localdir { 
pat     Mail/* 
prefix  Mail/ 
} 

la commande mailsync -m localdir répertorie tous les messages stockés sous Mail/. En revanche, la commande mailsync localdir répertorie les noms des dossiers. Les spécifications d'un magasin sur un serveur IMAP apparaissent de la façon suivante :


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

L'exemple ci-dessus concerne simplement le dossier principal du serveur IMAP. Un magasin de sous-dossiers apparaîtra de la manière suivante :


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

Si le serveur IMAP prend en charge les connexions codées, ses spécifications doivent être changées pour


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

ou, si le certificat du serveur est inconnu, pour


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

Le préfixe est décrit ultérieurement.

À présent, les dossiers sous Mail/ doivent être connectés aux sous-répertoires du serveur IMAP :


channel folder localdir imapdir {
msinfo .mailsync.info
} 

mailsync utilise le fichier msinfo pour suivre la trace des messages qui ont déjà été synchronisés.

La command mailsync folder effectue les tâches suivantes :

  • Elle ouvre le modèle de boîte aux lettres des deux côtés.

  • Elle supprime le préfixe des noms du dossier résultant.

  • Elle synchronise les dossiers dans les paires (ou les crée si elles n'existent pas).

Ainsi, le dossier INBOX.sent-mail sur le serveur IMAP est synchronisé avec le dossier local Mail/sent-mail (pourvu que les définitions ci-dessus existent). La synchronisation avec le dossier individuel s'effectue de la façon suivante :

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

  • Si le message manque d'un côté et est nouveau (non répertorié dans le fichier msinfo), il est transmis ici.

  • Si le message existe d'un seul côté et est ancien (déjà répertorié dans le fichier msinfo), il en est supprimé (car le message qui existait de l'autre côté a été supprimé).

Pour savoir à l'avance quels messages seront transmis et lesquels seront supprimés au cours d'une synchronisation, démarrez mailsync avec un canal et un magasin avec mailsync folder localdir. Cette commande produit une liste de tous les messages nouveaux sur l'hôte local, ainsi qu'une liste de tous les messages qui seraient supprimés du côté IMAP lors d'une synchronisation. De même, la commande mailsync folder imapdir produit une liste de tous les messages nouveaux du côté IMAP, ainsi qu'une liste de tous les messages qui seraient supprimés sur l'hôte local lors d'une synchronisation.

27.7.2. Problèmes possibles

En cas de perte de données, la méthode la plus sûre consiste à supprimer le fichier journal du canal concerné msinfo. Ainsi, tous les messages qui n'existent que d'un côté sont considérés comme nouveaux et sont de ce fait transmis au cours de la synchronisation suivante.

Seuls les messages ayant un ID de message sont inclus à la synchronisation. Les messages n'ayant pas d'ID de message sont simplement ignorés, ce qui signifie qu'ils ne sont ni transmis ni supprimés. Un ID de message manquant résulte généralement de programmes défaillants lors de l'envoi ou de l'écriture d'un message.

Sur certains serveurs IMAP, le dossier principal est désigné par INBOX et les sous-dossiers sont désignés par un nom sélectionné de façon aléatoire (contrairement à INBOX et INBOX.name). Par conséquent, pour ces serveurs IMAP, il n'est pas possible de spécifier un modèle exclusivement pour les sous-dossiers.

Lorsque la transmission des messages vers un serveur IMAP a réussi, les pilotes de la boîte aux lettres (c-client) utilisés par mailsync définissent un indicateur d'état spécial. Certains programmes de messagerie électronique, tels que mutt, ne sont donc pas en mesure de reconnaître ces messages comme étant nouveaux. Désactivez le paramètre de cet indicateur d'état spécial avec l'option -n.

27.7.3. Pour plus d'informations

Le README qui se trouve dans /usr/share/doc/packages/mailsync/, inclus dans mailsync, fournit des informations supplémentaires. À ce propos, RFC 2076 « En-têtes de messages Internet courants » est particulièrement intéressant.