Ir al contenido principal

Migrar cuentas entre servidores de correo usando pop2imap

A continuación les dejo una forma sencilla de migrar cuentas de correo entre 2 servidores de correo utilizando para ello un script en perl creado por LinuxFrance pop2imap el cual posee entre sus ventajas: transferencias incrementales (solo descarga los mensajes que no estén en el servidor de destino) y que el mismo puede ser ejecutado desde un equipo distinto a los servidores de origen y destino. La gente de LinuxFrance también tiene otro script llamado imapsync que funciona de manera similar pero para IMAP.

Yo estoy usando debian 7 así que las dependencia a instalar para mi distro son estas:
aptitude install libmail-pop3client-perl libmail-imapclient-perl libdigest-hmac-perl libemail-simple-perl libdate-manip-perl
Una vez que tenemos instaladas las dependencia podemos extraer y ejecutar el script, para ello basta con ejecutar:
tar -xzvf pop2imap-1.18.tgz
Con lo cual se descomprime el archivo en la carpeta pop2imap-1.18 
cd pop2imap-1.18
Ahora si estamos listos para migrar las cuentas. 

Por ejemplo, si queremos sincronizar "cuenta1" en el servidor "origen.com" con "cuenta1" en el servidor "destino.com" se ejecutaria lo siguiente

./pop2imap --host1 origen.com --user1 cuenta1 --password1 clave --host2 destino.com --user2 cuenta1 --password2 clave
Un dato interesante es que las cuentas de origen y destino no tiene porque ser iguales, es decir, se podría sincronizar una cuenta "correo1@algo.com" con otra totalmente diferente "test@prueba.com". Tambien es posible hacer otras cosas como borrar el correo de la cuenta origen al realizar la copia, vena pop2imap --help par mas detalles.

Como una utilidad adicional les dejo este sencillo script en AWK que hice para leer los datos de un archivo csv y migrar las cuentas entre 2 servidores, espero les sea de utilidad. La estructura del archivo es: cuenta@origen;clave;cuenta@destino;clave



#!/bin/sh

ARCH="correos.csv"

awk '
BEGIN {
    FS=";"
    HOST1="mail.origen.com"
    HOST2="mail.destino.com"
}
{
    cmd="pop2imap-1.18/pop2imap --host1 "HOST1" --user1 "$1" --password1 "$2" --host2 "HOST2" --user2 "$3" --password2 "$4
    #print cmd
    if (system(cmd) != 0)
        print "usuario=",$1,"[ERROR!]" > "migrar_error.log"
       
}' $ARCH
 Espero que sea de utilidad.

Comentarios

Entradas más populares de este blog

Configurar el DDNS de HE

Si necesitas utilizar un servicio de DNS dinamico gratuito y te aburriste de noip o similares, el servicio ofrecido Hurrican Electrics (HE) es una buena alternativa (https://dns.he.net).

Una vez que te registras y creas tu dominio, debes agregar el registro tipo A o AAAA (si funciona para IPv6) para tu servidor

Acá unas capturas del proceso








 Con esto tenemos listo el registro dinamico para que sea actualizado desde nuestro equipo, existen varias formas para esto como se puede ver en la pagina de HE, pero lo mas sencillo es con un cliente como ddclient

En debian, es tan fácil como:

aptitude install ddclient ó apt-get install ddclient

luego editamos el archivo /etc/ddclient.conf y debe quedar así

Es la configuración a usar si tu ip dinamica es publica de lo contrario utiliza la del ejemplo de windows

# Hurricane Electric
# dyn.dns.he.net
protocol=dyndns2    # default
use=if                          # use the eithernet card (to get the current IP)
if=eth0                         # use certa…

Recuperar GRUB 2 EFI utilzando rEFInd

Recientemente tuve un problema con un laptop dual-boot (widows/linux) al actualizar el Windosw 8.1 a 10. 
En una de las tantas reiniciadas de windows me quede sin el gestor de arranque grub, por lo que les explico como hice para recuperarlo, finalizar la actualización y dejar intacto mi querido debian.
Se que se puede recuperar el grub con una distro live y seguir algunos pasos, pero como comente la actualización a windows 10 aun no terminaba así que no quería tener que hacer esto a cada rato por lo que me decidí a probar rEFInd.

Lo primero es decidir que imagen utilizar, yo tenia a disposición un viejo USB de 512M así que baje la imagen A USB flash drive image file (les recomiendo revisar la web por si existe una nueva versión)

Una vez descargado el archivo podemos copiarlo al USB, para lo que utilizaremos el comando dd. Esto borrara toda la información que tenían en el mismo. root@lenovoG480 #~ dd if=refind-flashdrive-0.9.0.img of=/dev/sdg1

13696+0 registros leídos
13696+0 reg…

Instalar Icinga2 en debian Wheezy con BD Postgres

A continuación les dejo una guía rápida para la instalación de Icinga2 en debian wheezy,  cuando tenga que hacerlo en jessie actualizo el manual.

Lo primero que debes tener en cuenta es que en la pagina de Icinga tienes bastante documentación sobre como hacer esto mismo, de hecho este manual esta basado en lo que allí aparece. Otro detalle es que parto de la idea que ya tienes configurado Apache2 y Postgres

Comencemos por agregar los repositorios necesarios.

Debian Monitoring Project

~# echo "deb http://debmon.org/debmon debmon-wheezy main" > /etc/apt/sources.list.d/wheezy-debmon.list
~# wget -O - http://debmon.org/debmon/repo.key 2>/dev/null | apt-key add - OK
Según lo referido en esta pagina es posible que existan problemas de dependencias con icinga2 así que es recomendable agregar también el repositorio backports

Debian Backports

~# echo "deb http://http.debian.net/debian wheezy-backports main" > /etc/apt/sources.list.d/wheezy-backports.list
Recuerda que…