Migrar Thunderbird de "mbox" a "IMAP" (IV): Alimentando el IMAP4 y limpieza general

Hemos avanzado mucho tras el trabajo descrito en los artículos anteriores:

La situación ahora mismo es que tenemos dos árboles de carpetas de correo de unos mil elementos cada uno. Uno en la vieja estructura mbox de Thunderbird y otro en el IMAP4. Los árboles en sí son idénticos, y tenemos un procedimiento que mueve el correo de la estructura mbox de Thunderbird, alimentada por POP3, al servidor IMAP4 local.

A medida que van entrando mensajes nuevos por POP3, éstos se siguen guardando en el árbol de carpetas de correo mbox. El primer paso, por tanto, consiste en parar Thunderbird y modificar los filtros de correo para que el correo POP3 entrante ya no se guarde en el árbol mbox, sino en el IMAP4.

Con el Thunderbird parado buscamos el fichero msgFilterRules.dat. Estará en el disco duro, en el directorio raíz de nuestro árbol mbox. Se trata de un fichero de texto que podemos curiosear. Contiene las reglas de correo que se aplican a los mensajes que entran por POP3.

En mi caso aparecen reglas de filtrado tienen destinos similares a:

actionValue="mailbox://jcea@127.0.0.1/proveedores/rsync"

Con la configuración en particular de mis carpetas IMAP4 [1], tendríamos que cambiar esos destinos a:

actionValue="imap://jcea@127.0.0.1/proveedores/subversion/users"
[1] Aparece 127.0.0.1 en los dos casos porque empleo proxies locales como Mailproof (código fuente pendiente de ser publicado). Tu configuración será distinta. Lo más sencillo es que crees una regla de correo hacia una carpeta IMAP4 y veas cómo aparece en msgFilterRules.dat.

También debemos cambiar otras cosas, como convertir los %20 a espacios, los %40 a arrobas y los caracteres UTF-8 a mUTF-7. Hacemos una copia de msgFilterRules.dat y ejecutamos el siguiente script:

$ sed --in-place \
      -e 's*actionValue="mailbox://jcea@127.0.0.1/*actionValue="imap://jcea@127.0.0.1/*g' \
      -e 's/%20/ /g' \
      -e 's/%40/@/g' \
      -e 's/%C3%B3/\&APM-/g' \
      -e 's/%C3%B1/\&APE-/g' \
      -e "s/%27/\'/g" msgFilterRules.dat

Puedes ver si te has dejado algo buscando el carácter % en el fichero msgFilterRules.dat resultante. Usa el comando doveadm mailbox mutf7 si necesitas añadir más conversiones UTF-8 a mUTF-7.

Hacemos algo parecido con el fichero virtualFolders.dat que aparece en el directorio raíz de nuestro perfil Thunderbird. Este fichero contiene la definición de carpetas como las Saved Searches. Una vez alterado habremos movido las Saved Searches a la cuenta IMAP4.

Seguimos el procedimiento para mover los mensajes del árbol mbox al IMAP4 y lanzamos el Thunderbird. Esperamos un rato y vemos que los mensajes nuevos empiezan a aparecer en las carpetas IMAP4, a pesar de entrarnos por POP3.

Si lo hemos hecho todo bien el árbol mbox tendrá mil carpetas de correo pero todas ellas estarán vacías. Lo vamos comprobando una a una (¡no queremos perder correo!) y vamos borrando las carpetas mbox.

Cuando terminemos tendremos una cuenta POP3 con las carpetas INBOX, Drafts, Templates, Sent, Archives, Trash y Unsent Messages. Nada más. Toda la estructura de correo estará en el IMAP4.

Los mensajes POP3 nuevos se guardarán en carpetas IMAP4 automáticamente, gracias a las reglas de correo que hemos modificado. Los mensajes sin una regla específica quedarán en el INBOX de toda la vida.

Este esquema funciona bien pero tiene tres problemas. El primero es que tenemos los mensajes sin reglas específicas en la carpeta INBOX del POP3 de toda la vida, no en el INBOX del IMAP4. Los otros dos problemas están descritos en Migrar Thunderbird de "mbox" a "IMAP" (II): Prueba de concepto: Aparición temporal de los mensajes en el INBOX hasta que se reciben todos y se empiezan a aplicar las reglas de correo, y que las reglas de correo dejan de aplicarse esporádicamente.

Actualización 20140921: Puedes leer la continuación de la historia en Migrar Thunderbird de "mbox" a "IMAP" (V): Alimentando el IMAP4 y reconfiguración de cuentas.