OfflineIMAP es un software de utilidad de sincronización IMAP , capaz de sincronizar el correo del servidor IMAP con la carpeta Maildir local [2] u otro servidor.
La sincronización se realiza de forma bidireccional entre dos puntos finales (repositorios "remotos" y "locales"). [3]
OfflineIMAP accede a los servidores de correo únicamente a través del Protocolo de acceso a mensajes de Internet (no es compatible con el Protocolo de oficina postal , otra forma popular de obtener correo de un servidor). [4] Funciona más rápido (aunque es sensible a la latencia de la conexión) y admite funciones más avanzadas que la mayoría de los clientes de correo . [5] Se puede habilitar opcionalmente un modo especial para gestionar mejor la implementación no estándar de IMAP en Gmail en un archivo de configuración . [6]
Cuando se configura para almacenar correo localmente, OfflineIMAP utiliza el formato Maildir . [3] Es posible que en el futuro se añada compatibilidad con buzones de correo Unix , aunque actualmente no está implementado. [6]
Se pueden definir varias cuentas de sincronización, cada una de ellas compuesta por repositorios remotos y locales, en un archivo de configuración. Luego, cada repositorio se configura por separado, lo que permite especificar credenciales y métodos de acceso. [3]
OfflineIMAP es capaz de filtrar las carpetas del repositorio remoto, de modo que sólo se produzca una sincronización parcial en caso de ser necesario. Para utilizar esta capacidad, hay que definir la máscara que se comparará con la lista de carpetas en cada sincronización. Esto se consigue utilizando la capacidad lambda de Python ; por ejemplo, para sincronizar sólo las carpetas "INBOX", "Sent Mail" y "Received", se debe especificar la siguiente regla: [5]
folderfilter = lambda foldername : nombre de carpeta en [ "BANDEJA DE ENTRADA" , "Correo enviado" , "Recibido" ]
Los nombres de las carpetas restantes se pueden modificar (traducir) utilizando una construcción similar: [3]
nametrans = lambda nombre_carpeta : re . sub ( "^Sent$" , "root/Sent" , re . sub ( "^(\[G.*ail\]|INBOX)" , "root" , nombre_carpeta ) )
Esta técnica también se puede utilizar para sincronizar el contenido de un servidor IMAP con la carpeta de otro servidor. [5]
Cada cuenta debe utilizar un directorio separado; de lo contrario, el proceso de sincronización puede sufrir un comportamiento inesperado o incluso pérdida de datos. [5]
OfflineIMAP ofrece varias interfaces de línea de comandos , incluido un registro de consola interactivo basado en curses de colores, uno no interactivo y varios modos menos detallados. [3] También está disponible una interfaz gráfica de usuario basada en Tk . [5]