Correo electrónico
Usar imapsync por SSH para copiar correo entre proveedores
imapsync copia mensajes entre dos buzones IMAP, junto con la estructura de carpetas y los indicadores compatibles. Es una copia en una dirección, no un espejo exacto: no migra contactos, calendarios, reglas ni metadatos que alguno de los servidores no exponga por IMAP.
Un uso frecuente es el cambio de proveedor de correo, por ejemplo al migrar a nuestros servicios de hosting. La sincronización debe repetirse y verificarse para reducir el riesgo de omitir mensajes durante el cambio.
Antes de empezar, crea el buzón de destino, inventaría las carpetas y comprueba sus cuotas. Ejecuta una primera sincronización sin opciones de borrado, revisa el mapeo de carpetas, los recuentos y los errores, y corrige cualquier diferencia antes de cambiar el flujo de correo.
Si prefieres que preparemos la migración, consulta con soporte el alcance incluido para tu servicio. Para realizarla por tu cuenta, comprueba que tienes acceso SSH e imapsync disponible; la alternativa gráfica se explica en Migrar correo desde el panel.
Siguiendo con el ejemplo inicial, si queremos sincronizar una cuenta de correo origen con una cuenta de correo destino, necesitaremos primero los datos de acceso a dichas cuentas, si la cuenta destino es una nueva, deberás crearla primero desde cPanel.
Usa contraseñas de aplicación o credenciales temporales cuando el proveedor las permita. Google Workspace puede requerir OAuth2 o una contraseña de aplicación autorizada, y Microsoft 365 requiere OAuth en las configuraciones modernas; consulta el procedimiento específico del origen. No escribas contraseñas en los argumentos de imapsync: quedarían visibles en el historial de la shell y podrían aparecer en el listado de procesos. Para proveedores que todavía admitan esta autenticación, guarda cada contraseña en un fichero separado fuera de la raíz web y protégelo antes de ejecutar la sincronización:
umask 077 read -rsp 'Contraseña temporal de origen: ' IMAPSYNC_PASS1; printf '\n' read -rsp 'Contraseña temporal de destino: ' IMAPSYNC_PASS2; printf '\n' printf '%s\n' "$IMAPSYNC_PASS1" > "$HOME/.imapsync-pass1" printf '%s\n' "$IMAPSYNC_PASS2" > "$HOME/.imapsync-pass2" unset IMAPSYNC_PASS1 IMAPSYNC_PASS2 chmod 600 "$HOME/.imapsync-pass1" "$HOME/.imapsync-pass2" imapsync \ --host1 SERVIDOR_IMAP_ORIGEN --user1 CUENTA_ORIGEN --passfile1 "$HOME/.imapsync-pass1" --ssl1 --sslargs1 SSL_verify_mode=1 \ --host2 SERVIDOR_IMAP_DESTINO --user2 CUENTA_DESTINO --passfile2 "$HOME/.imapsync-pass2" --ssl2 --sslargs2 SSL_verify_mode=1
Antes de la copia real, ejecuta el mismo comando añadiendo --dry. Revisa en la salida cómo se corresponden los nombres de carpeta y corrige las reglas de inclusión, exclusión o renombrado que necesites. Después retira --dry para iniciar la sincronización efectiva.
La duración depende del volumen, la conexión y los límites de los proveedores. Revisa el resumen final y los errores; que se cierre la terminal o deje de aparecer progreso no acredita una copia terminada.
--ssl1 y --ssl2 cifran ambas conexiones. Añade también SSL_verify_mode=1 en --sslargs1 y --sslargs2 para exigir la validación del certificado, y no continúes si falla. Al terminar y verificar la migración, elimina los ficheros con el siguiente comando:
rm "$HOME/.imapsync-pass1" "$HOME/.imapsync-pass2"
Después revoca o rota las credenciales utilizadas.
La documentación de imapsync trata usos como Gmail, Exchange y Microsoft 365 y dispone de numerosas opciones. Algunas son destructivas: --delete1 elimina mensajes del origen y --delete2 puede eliminar del destino mensajes que no estén en el origen. No las uses en una migración básica; prueba primero la copia sin opciones de borrado y verifica ambos buzones.
En una migración, ejecuta una segunda sincronización inmediatamente antes del cambio de MX y otra al finalizar la propagación. Mantén accesible el origen durante ese periodo, compara carpetas y recuentos en ambos extremos y abre una muestra de mensajes y adjuntos. No elimines los buzones antiguos hasta confirmar que ya no reciben correo y que la recuperación desde destino funciona.
Interpreta el resultado
Comprueba el código de salida, los errores y los mensajes identificados que faltan en destino. Una diferencia de tamaño total no demuestra por sí sola pérdida: los servidores pueden contabilizar de forma distinta y Gmail presenta un mismo mensaje bajo varias etiquetas.
Empieza con un buzón y conserva sus parámetros y registro en una ubicación privada. Si la conexión se interrumpe, revisa la causa y repite con los mismos criterios de carpetas; no añadas opciones de borrado para intentar igualar las cifras.
El bloque de preparación de contraseñas utiliza Bash (read -rsp): ejecútalo en esa shell, no en una consola que interprete esas opciones de otra forma. No actives trazas como set -x ni la opción --showpasswords al manejar credenciales.
También te puede ayudar
- Copiar correo de Gmail o Google Workspace a Hostsuar Explica cómo autenticar de forma segura una cuenta Gmail o Google Workspace para copiar su buzón a H...
- Migrar correo de Google Workspace con imapsync (cuenta de servicio OAuth2) Detalla cómo autorizar imapsync en todo un dominio de Google Workspace mediante OAuth2, una cuenta d...
- Migrar correo desde el panel con imapsync Prepara origen y destino, prueba la conexión y revisa el resultado de una copia de buzones desde el...
- Archivar correo entrante y saliente de un dominio en cPanel Define el alcance y la retención del archivo de correo de cPanel y comprueba cómo consultarlo sin co...
¿Algo no cuadra o ha cambiado? Cuéntanoslo y lo revisamos.