47.7. Introducción a mailsync

Básicamente, mailsync resulta adecuado para realizar tres tareas:

47.7.1. Configuración y manejo

Mailsync distingue entre el buzón en sí (lo que se conoce como store) y el enlace entre dos buzones (que se denomina channel). Las definiciones de store y channel se encuentra en el archivo ~/.mailsync.A continuación se mencionan algunos ejemplos de stores.

Una definición sencilla sería la siguiente:

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

En las líneas superiores, Mail/ es un subdirectorio del directorio personal de usuario que contiene carpetas con mensajes, entre ellas la carpeta saved-messages. Si se ejecuta mailsync con el comando mailsync -m saved-messages, se mostrará un índice de todos los mensajes guardados en saved-messages. Otra posible definición sería:

store localdir { 
pat     Mail/* 
prefix  Mail/ 
} 

En este caso, la ejecución de mailsync -m localdir produce una lista de todos los mensajes almacenados en las carpetas de Mail/. Por su parte, el comando mailsync localdir produce una lista con los nombres de las carpetas. La definición de un store en un servidor IMAP sería por ejemplo:

store imapinbox {
server  {mail.uni-hannover.de/user=gulliver}
ref     {mail.uni-hannover.de}
pat     INBOX
}

El ejemplo superior sólo se refiere a la carpeta principal del servidor IMAP. Un store para una subcarpeta se definiría así:

store imapdir {
server  {mail.uni-hannover.de/user=gulliver}
ref     {mail.uni-hannover.de}
pat     INBOX.*
prefix  INBOX.
}

Si el servidor IMAP soporta conexiones cifradas, la definición del servidor ha de cambiarse a

server  {mail.uni-hannover.de/ssl/user=gulliver

o, en caso de que el certificado del servidor no se conozca, a

server {mail.uni-hannover.de/ssl/novalidate-cert/user=gulliver}

Este prefijo se explica posteriormente.

Ahora es necesario conectar las carpetas de Mail/ con los subdirectorios del servidor IMAP:

channel folder localdir imapdir {
msinfo .mailsync.info
} 

Durante este proceso, Mailsync registra en el archivo definido con msinfo qué mensajes han sido ya sincronizados.

La ejecución de mailsync carpeta produce como resultado lo siguiente:

  • El patrón del buzón (pat) se amplía en ambas partes.

  • Se elimina el prefijo (prefix) de los nombres de carpetas creados con este procedimiento.

  • Las carpetas se sincronizan por pares (o son creadas en caso de no estar todavía disponibles).

Por lo tanto, la carpeta INBOX.sent-mail del servidor IMAP es sincronizada con la carpeta local Mail/sent-mail (presuponiendo las definiciones anteriores). La sincronización entre las carpetas individuales se producen del siguiente modo:

  • Si un mensaje existe en ambas partes, no sucede nada.

  • Si un mensaje falta en un lado y es nuevo (es decir, no está registrado en el archivo msinfo) será transmitido a esa parte.

  • Si un mensaje existe sólo en una parte y es antiguo (ya está registrado en el archivo msinfo), será eliminado (ya que al parecer ya había existido en el otro lado y ha sido borrado).

Para obtener a priori una idea de qué mensajes serán transmitidos y cuáles serán borrados al realizar la sincronización, se puede activar Mailsync con un channel y un store simultáneamente: mailsync carpeta localdir. De esta forma se obtiene una lista de todos los mensajes que son nuevos localmente y otra lista de los mensajes que serían borrados en la parte del servidor IMAP si se realizase una sincronización. De manera inversa, con mailsync carpeta imapdir se obtiene una lista con todos los mensajes nuevos en la parte del servidor y otra con los mensajes que serían borrados localmente si se realizase la sincronización.

47.7.2. Posibles problemas

En caso de pérdida de datos, el procedimiento más seguro consiste en borrar el archivo de registro msinfo correspondiente al canal. De esta forma, todos los mensajes que sólo existan en una parte se considerarán como nuevos y serán transmitidos con la siguiente sincronización.

En la sincronización se tienen en cuenta sólo los mensajes que tienen un message ID. Los mensajes que carezcan de este serán ignorados, es decir, ni transmitidos ni eliminados. El message ID puede faltar debido a programas defectuosos en el proceso de entrega de correo o en el de creación de mensajes.

En algunos servidores IMAP, la carpeta principal se conoce con el nombre de INBOX y las subcarpetas con nombres arbitrarios (al contrario que en INBOX e INBOX.name). Esto provoca que en estos servidores IMAP no sea posible definir un patrón exclusivamente para las subcarpetas.

Después de la transmisión exitosa de mensajes a un servidor IMAP, los controladores para buzones (c-client) utilizados por Mailsync colocan una bandera de estado especial. Esta bandera no permite a algunos programas de correo como mutt detectar el mensaje como nuevo. Para evitar la colocación de estas banderas de estado en mailsync, puede utilizar la opción -n.

47.7.3. Información adicional

Puede encontrar más información en el README incluido en el paquete mailsync en /usr/share/doc/packages/mailsync/. En este contexto, el RFC 2076 "Common Internet Message Headers" también contiene información de gran interés.