A logo showing the text blog.marcnuri.com
English
Inicio»Java»Migración de correo electrónico mediante mnIMAPSync

Entradas Recientes

  • Fabric8 Kubernetes Client 6.5.0 está disponible!
  • Fabric8 Kubernetes Client 6.4.1 está disponible!
  • Fabric8 Kubernetes Client 6.3.1 está disponible!
  • Eclipse JKube 1.10 está disponible!
  • Fabric8 Kubernetes Client 6.2.0 está disponible!

Categorías

  • Antiguo
  • Front-end
  • Herramientas
  • Java
  • JavaScript
  • Operaciones
  • Proyectos personales

Archivos

  • marzo 2023
  • enero 2023
  • diciembre 2022
  • noviembre 2022
  • octubre 2022
  • agosto 2022
  • julio 2022
  • mayo 2022
  • febrero 2022
  • enero 2022
  • diciembre 2021
  • noviembre 2021
  • octubre 2021
  • septiembre 2021
  • agosto 2021
  • julio 2021
  • diciembre 2020
  • octubre 2020
  • agosto 2020
  • mayo 2020
  • marzo 2020
  • noviembre 2019
  • octubre 2019
  • julio 2019
  • diciembre 2018
  • agosto 2018
  • julio 2018
  • junio 2018
  • marzo 2018
  • febrero 2018
  • noviembre 2017
  • octubre 2017
  • agosto 2017
  • julio 2017
  • julio 2016
  • enero 2016
  • diciembre 2015
  • noviembre 2015
  • marzo 2007

Migración de correo electrónico mediante mnIMAPSync

2015-11-27 en Java / Herramientas etiquetado Backup / Correo Electrónico / Correo / Migración / Open Source / Tutorial por Marc Nuri | Última actualización: 2021-02-22
English version

¿Una herramienta más para sincronizar correo IMAP?

Hace un par de años, cuando liberamos por primera vez mnIMAPSync, ya había varias herramientas disponibles para sincronizar el correo electrónico. El problema con la mayoría de ellas es que cuando se hacen copias de seguridad o migraciones incrementales del correo, algunos mensajes, en general aquellos que no está conforme a las especificaciones del RFC (3501), se duplican en el servidor donde hacemos la copia. Esto se debe principalmente a headers incorrectos o a que el mensaje carece de message-id.

Al no disponer de ninguna herramienta, tuvimos que programar una que hiciese correctamente el trabajo. La principal diferencia entre mnIMAPSync y otras soluciones es que mnIMAPSync comprueba varios headers para cada mensaje y crea un índice de rápido acceso de manera que cuando el servidor de destino se rastree, los mensajes existentes no se vuelvan a copiar y queden duplicados.

Requisitos

Java

Esta herramienta está programada en Java, por lo que será necesario tener un JRE instalado. Si en tu sistema no tienes ninguno instalado, visita www.java.com/download y descarga la última versión.

Captura de pantalla de la página de descargas de Java
Captura de pantalla de la página de descargas de Java

Sigue las instrucciones de la página para descargar e instalar el entorno de Ejecución Java.

mnIMAPSync

Lo siguiente es descargar mnIMAPSync. Puedes descargar la última versión, o el código fuente desde Github y compilar tu propio Jar. Para descargar una versión precompilada visita https://github.com/manusa/mnIMAPSync#releases y descarga la última.

Captura de pantalla de la página de descargas de mnIMAPSync para Java
Captura de pantalla de la página de descargas de mnIMAPSync para Java

Una vez descargada la distribución en Zip, tienes que extraer el contenido del paquete a un directorio empleando tu herramienta preferida.

Ejecutando el programa

Este es un programa de línea de comandos, por lo que será necesario una terminal o una ventana de cmd.

En windows puedes emplear cmd.exe (Inicio->Ejecutar->cmd.exe)

Para usar el programa, simplemente hay que especificar los argumentos requeridos. Puedes encontrar la lista de comandos disponibles en la página del proyecto.

En este tutorial vamos a migrar una cuenta de correo de GMail a una cuenta de correo en un servidor personal. Si el proceso se ejecuta de forma periódica, cada migración se ejecutará de forma incremental y el proceso únicamente copiará los mensajes y carpetas que no existan en el servidor de destino.

1java -jar mnIMAPSync.jar                                         \
2  --host1 imap.gmail.com --port1 993                             \
3  --user1 myuser@gmail.com --password1 mypassword --ssl1         \
4  --host2 my.server.com --port2 143                              \
5  --user2 backupuser@my.server.com --password2 backuppassword    \
6  --threads 3 --delete

El comando anterior sincronizará una cuenta de origen en gmail a una cuenta de destino en el servidormy.server.com a modo de copia de seguridad.

host1, port1, user1, password1 y ssl1 son los parámetros que especifican la conexión al servidor de origen y las opciones de autenticación. En este caso nos conectamos al servidor IMAP de Gmail empleando SSL.

host2, port2, user2 y password2 son los parámetros que especifican la conexión al servidor de destino y las opciones de autenticación. En este caso nos estamos conectando a my.server.com usando una conexión regular no segura (no encriptada mediante SSL).

El parámetro threads indica el número de hilos o procesos en paralelo que empleará la aplicación. En este caso serán 3 hilos, así que el programa hará 3 conexiones independientes al servidor de origen y de destino y ejecutará las tareas en paralelo.

El parámetro delete es un parámetro opcional que indica si queremos borrar las carpetas y mensajes del servidor de destino que que ya no existen el servidor de origen.

Captura de pantalla de la ejecución completada de un proceso de mnIMAPSync
Captura de pantalla de la ejecución completada de un proceso de mnIMAPSync
Twitter iconFacebook iconLinkedIn iconPinterest iconEmail icon

Navegador de artículos

← Docker: Instalando docker en WindowsEjecutar Apache Tomcat y Apache HTTPD en el puerto 80 simultaneamente →
© 2007 - 2023 Marc Nuri