Básicamente, mailsync resulta adecuado para realizar tres tareas:
Sincronización de mensajes de correo electrónico archivados localmente con mensajes almacenados en un servidor.
Migración de buzones a otro formato o a otro servidor.
Comprobación de la integridad de un buzón o búsqueda de duplicados.
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.
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.