Migraciones de Correos
Durante una migracion de un servidor de un Plesk 8.0 a 8.1 me entere de 2 cosas:
- Plesk 8.0 y 8.1 NO son compatibles en migracion (Que felicidad OH SI QUE FELICIDAD)
- Para migrar una cuenta de Plesk te va a pedir el password de root
Ahora, tal vez sea yo muy quisquilloso pero si algun cliente de mi hosting viene y me pide el password de root porque se va a migrar de mi server, no me suena muy convincente como para darselo, y obviamente fue lo que paso, ese es el problema con los hostings compartidos, Dios los libre de migrar su plesk.
Si es el mismo plesk se puede hacer un backup y despues mover el backup, este backup hasta los correos trae asi que no hay tanto problema, pero desgraciadamente no fue este el caso.
En fin, resulta que entonces tuvimos el problema mas grande, se aventaron rapidamente los admins las cuenas de correo, pero, ¿y el correo? encontre una solucion bastante facil y elegante hasta cierto punto, se resetearon las cuentas a un password y de ahi por IP (porque habiamos ya movido el dominio de DNS) hicimos una migracion por IMAP, ¿porque por IMAP?
Bueno porque asi los correos leidos y los correos sin leer mantenian su estatus, en caso de que alguna persona checara su correo en IMAP desde ese servidor.
Asi pues terminamos con un codigo como el siguiente:
#!/usr/bin/perl -w# Codigo rapidamente creado para migrar cuentas # Enrique A. Sanchez Montellano # enrique.sanchez@yaguarete-sec.com # use Mail::IMAPClient;$server = "SERVER_VIEJO"; $password = "PASSWORD"; open(FILE, "cuentas.txt") or die "No puedo abrir archivo cuentas.txt: $!n"; while() { $username = $_; chomp($username); print "Migrando $usernamen"; my $imap_source = Mail::IMAPClient->new(Server => $server, User => $username, Password => $password) or goto sskip; # Pick the Inbox my $imap_dest = Mail::IMAPClient->new(Server => "SERVER_NUEVO", User => $username, Password => $password) or goto sskip; $imap_source->select('INBOX'); $imap_dest->select('INBOX'); $imap_source->migrate($imap_dest, "ALL", 'INBOX'); sskip: print "Usuario $username migradonn"; }
Y asi seguimos con la migracion, la cual fue hasta cierto punto, rapida (que es un decir con 180 cuentas con un monton de correos) despues fui creciendo la migracion y el archivo a u archivo mas complejo donde hasta corria spamassassin con reglas para quitar el spam cuando se migraba a los servidores, porque en realidad hay muchos servidores que no tienen un buen filtro antispam y eso … es un poco doloroso.
Bueno aqui lo dejo, el truco esta en la funcion migrate del modulo de IMAP que tienen en CPAN, ¿hermoso no? simplemente hay que saber que hay hecho para no reinventar la rueda.
Vive la vida nawaloca …
//Nahual



