27.7. Introducción a mailsync

mailsync resulta especialmente adecuado para las tres tareas siguientes:

27.7.1. Configuración y uso

mailsync distingue entre el propio buzón de correo (el almacén) y la conexión entre ambos buzones (el canal). Las definiciones de los almacenes y los canales se guardan en ~/.mailsync. Los siguientes párrafos explican varios ejemplos de almacenes.

Una definición sencilla puede tener la siguiente estructura:


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

Mail/ es un subdirectorio del directorio personal del usuario que contiene carpetas de correo electrónico, incluida la carpeta saved-messages. Si mailsync se inicia mediante el comando mailsync -m saved-messages, muestra un índice de todos los mensajes de saved-messages. Si se realiza la siguiente definición:


store localdir { 
pat     Mail/* 
prefix  Mail/ 
} 

el comando mailsync -m localdir muestra todos los mensajes incluidos en Mail/. Por el contrario, el comando mailsync localdir muestra los nombres de las carpetas. Las especificaciones de un almacén en un servidor IMAP presentan la siguiente estructura:


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

El ejemplo anterior afecta únicamente a la carpeta principal del servidor IMAP. Un almacén para las subcarpetas tendría la siguiente estructura:


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

Si el servidor IMAP es compatible con las conexiones cifradas, la especificación del servidor debe modificarse del siguiente modo:


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

o bien, si el certificado del servidor no es conocido, del siguiente modo:


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

El prefijo se explicará a continuación.

Ahora las carpetas bajo Mail/ deberían estar conectadas a los subdirectorios del servidor IMAP:


channel folder localdir imapdir {
msinfo .mailsync.info
} 

mailsync utiliza el archivo msinfo para realizar un seguimiento de los mensajes ya sincronizados.

El comando mailsync folder hace lo siguiente:

  • Amplía el patrón del buzón de correo en ambos lados.

  • Elimina el prefijo de los nombres de carpetas resultantes.

  • Sincroniza las carpetas por parejas (o las crea si no existían).

En consecuencia, la carpeta INBOX.sent-mail del servidor IMAP se sincroniza con la carpeta local Mail/sent-mail (siempre y cuando existan las definiciones explicadas anteriormente). La sincronización entre las carpetas individuales se lleva a cabo del modo siguiente:

  • Si un mensaje ya existe en ambos lados, no ocurre nada.

  • Si el mensaje no se encuentra en uno de los lados y es nuevo (no aparece en el archivo msinfo), se transmite a dicho lado.

  • Si el mensaje sólo existe en un lado y es antiguo (aparece en el archivo msinfo), se suprime (porque el mensaje que existía en el otro lado también se ha suprimido).

Para saber por adelantado los mensajes que se transmitirán y los que se suprimirán durante la sincronización, inicie mailsync con un canal y un almacén, mediante el comando mailsync folder localdir. Este comando produce una lista de todos los mensajes nuevos del host local, así como de los mensajes que se suprimirían en el lado del IMAP durante la sincronización. Del mismo modo, el comando mailsync folder imapdir produce una lista de todos los mensajes que son nuevos en el lado del IMAP, así como de los mensajes que se suprimirían en el host local durante la sincronización.

27.7.2. Problemas posibles

Si se producen pérdidas de datos, el método de recuperación más seguro es suprimir el archivo de registro de canal relevante msinfo. En consecuencia, todos los mensajes que sólo existan en un lado se considerarán nuevos y, por lo tanto, se transmitirán durante la próxima sincronización.

En la sincronización sólo se incluyen los mensajes con identificador. Los mensajes que no tienen identificador simplemente se omiten, lo que significa que no se transmiten ni suprimen. Las faltas de identificadores suelen ser provocadas por errores de los programas al enviar o escribir un mensaje.

En algunos servidores IMAP, se hace referencia a la carpeta principal con el nombre de INBOX y a las subcarpetas con nombres seleccionados aleatoriamente (lo que contrasta con la estructura INBOX e INBOX.nombre). Por lo tanto, en el caso de dichos servidores IMAP, no es posible especificar un patrón exclusivo para las subcarpetas.

Cuando se han transmitido correctamente los mensajes a un servidor IMAP, los controladores del buzón de correo (c-client) utilizados por mailsync establecen un indicador especial de estado. Por este motivo, algunos programas de correo electrónico, como mutt, no pueden reconocer estos mensajes como nuevos. Inhabilite el ajuste de este indicador especial de estado con la opción -n.

27.7.3. Información adicional

El archivo README (LÉAME) de /usr/share/doc/packages/mailsync/, incluido en mailsync, proporciona información adicional. A este respecto, la petición de comentario (RFC) 2076, “Common Internet Message Headers” (Encabezados de mensajes comunes de Internet), resulta especialmente interesante.