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

Entradas Recientes

  • Fabric8 Kubernetes Client 7.2.0 está disponible!
  • Conectarse a un servidor MCP con JavaScript y AI SDK
  • Conectarse a un servidor MCP con JavaScript y LangChain.js
  • El Futuro de las Herramientas para Desarrolladores en la era de la IA
  • Conectarse a un servidor Model Context Protocol (MCP) con Java y LangChain4j

Categorías

  • Antiguo
  • Front-end
  • Go
  • Herramientas
  • Industria y negocios
  • Inteligencia Artificial
  • Java
  • JavaScript
  • Operaciones
  • Personal
  • Proyectos personales

Archivos

  • mayo 2025
  • abril 2025
  • marzo 2025
  • febrero 2025
  • enero 2025
  • diciembre 2024
  • noviembre 2024
  • agosto 2024
  • junio 2024
  • mayo 2024
  • abril 2024
  • marzo 2024
  • febrero 2024
  • enero 2024
  • diciembre 2023
  • noviembre 2023
  • octubre 2023
  • septiembre 2023
  • agosto 2023
  • julio 2023
  • junio 2023
  • mayo 2023
  • abril 2023
  • marzo 2023
  • febrero 2023
  • enero 2023
  • diciembre 2022
  • noviembre 2022
  • octubre 2022
  • agosto 2022
  • julio 2022
  • mayo 2022
  • marzo 2022
  • febrero 2022
  • enero 2022
  • diciembre 2021
  • noviembre 2021
  • octubre 2021
  • septiembre 2021
  • agosto 2021
  • julio 2021
  • diciembre 2020
  • octubre 2020
  • agosto 2020
  • junio 2020
  • mayo 2020
  • marzo 2020
  • febrero 2020
  • enero 2020
  • noviembre 2019
  • octubre 2019
  • julio 2019
  • diciembre 2018
  • agosto 2018
  • julio 2018
  • junio 2018
  • mayo 2018
  • marzo 2018
  • febrero 2018
  • noviembre 2017
  • octubre 2017
  • agosto 2017
  • julio 2017
  • enero 2017
  • julio 2016
  • enero 2016
  • diciembre 2015
  • noviembre 2015
  • diciembre 2014
  • marzo 2014
  • febrero 2011
  • junio 2008
  • mayo 2008
  • abril 2008
  • enero 2008
  • junio 2007
  • mayo 2007
  • abril 2007
  • 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 - 2025 Marc Nuri