Editando Cambio desde Microsoft Exchange
¡Este artículo necesita atención! Este artículo no cumple los estándares esperados en la Wiki de openSUSE. |
Muchas veces, sólo necesitas configurar dos cuentas IMAP en tu cliente de correo, y después copiar todo de la cuenta de Microsoft Exchange a la cuenta en GNU/Linux. No obstante, las subcarpetas y un gran número de mensajes de la cuenta de Microsoft Exchange pueden hacer fallar algunos de los clientes de correo más populares. ATENCIÓN: NO USAR MOVER, USAR COPIAR!
Queremos copiar todo el correo -leído o no - desde una cuenta de MS Exchange a un directorio Maildir en un sistema GNU/Linux. Sólo necesitas entrar en una shell en la máquina GNU/Linux para conseguirlo. Por favor, lee el ejemplo entero antes de proceder, bajo tu propio riesgo. No borraremos ningún correo, pero deberías hacerlo con calma.
Primero, asegúrate de que no llegue correo nuevo a la cuenta MS Exchange añadiendo un redireccionamiento en MS Active Directory a la nueva cuenta en GNU/Linux. Recuerda arreglar las listas de correo tambień.
Microsoft Exchange soporta la recolección usando Internet Message Acces Protocol (IMAP). Un directorio especial, llamado INBOX, existe en tu cuenta de Microsoft Exchange server. Las subcarpetas en INBOX usan el caracter especial de la barra (slash) - / - como delimitador en modo texto, pero lo comprobaremos para asegurarnos.
telnet yourexchangeserver.com imap
A LOGIN username password A LIST "" * A LOGOUT
A list of all folders on the Microsoft Exchange server flies by, something like this:
* LIST (\HasChildren) "/" INBOX * LIST (\HasChildren) "/" INBOX/mailing-lists * LIST (\Marked \HasNoChildren) "/" INBOX/mailing-lists/openSuSE
INBOX tiene hijos, esto quiere decir que una subcarpeta como mailing-lists. mailing-lists tiene hijos también, el subdirectorio openSuSE. No hay subdirectorios en openSuSE, por lo que dice \HasNoChildren. El caracter en el "", aqui /, muestra que el caracter delimitador es la barra.
Selecciona todo y copia/pega en un archivo de texto llamado carpetas y guárdalo.
IMPORTANTE: COMPRUEBA LOS CONTENIDOS DEL ARCHIVO!!!Podría haber dragones o cosas más mundanas que podrían estropear la copia. Puedes escribir:
cat folders
para ver los contenidos del archivo. Sólo quieres mantener el nombre de los directorios. Los directorios con espacios en sus nombres aparecerán entrecomillados, mientras que los que no tengan espacios no. Como esto:
"Junk E-mail" INBOX/mailing-lists
Si estás migrando una gran cantidad de directorios, para varios usuarios, puede que necesitas una expresión regular para eliminar todo salvo los nombres de directorio. Si simplemente mueves tus carpetas, probablemente puedas conseguirlo usando un editor de texto. Debes finalizar con un archivo donde cara carpeta está en su propia línea, y mantener las comillas si hubiera espacios en los nombres. Para seguir el ejemplo, llama al archivo directorios_lipiados.
Necesitarás 'tener instalados 'fetchmail y maildrop. Procmail puede usarse como sustituto para maildrop. Esto no se tratará aquí.
Crea o edita un archivo llamado .fetchmailrc en tu directorio personal, haz que el contenido sea "similar" a :
# See man fetchmail for options poll yourexchangeserver.com proto imap user your_username_on_the_Microsoft_Exchange_server_goes_here pass your_password_goes_here mda /usr/bin/maildrop
Use maildirmake to create a subfolder for mail from the Microsoft Exchange account, like this:
maildirmake -f Exchange Maildir
Create or edit a file called .mailfilter in your home folder, make it look like this:
MAIL=$HOME/Maildir/.Exchange/
Maildrop will now send all mail into this folder, so it might be a good idea ask your administrator to hold all new mail or do this at a time of day when you don't get a lot of mail.
Now, do a dry run to check for problems
for x in `cat folders_cleaned`; do; fetchmail -c -v -r $x; done
If all goes well, you can start copying by changing the above line to
for x in `cat folders_cleaned`; do; fetchmail -a -k -r $x; done
WARNING: DO NOT FORGET THE -k OPTION! This keeps the messages on the Microsoft Exchange server.
When the copying has completed, clean up by changing .mailfilter back to
MAIL=$HOME/Maildir/