Después de haber investigado un poco, he decidido usar el protocolo IMAP en lugar del POP, que es el que estaba utilizando hasta ahora. Para esto tendré que usar la librería estandar de Python “imaplib”, en vez de “poplib”, por lo que voy a tener que reescribir una parte importante del código.
¿Merece la pena este cambio?. Pues la verdad es que sí. La razón principal para el cambio es que IMAP permite hacer búsquedas en el servidor, de forma que éste te devuelva los índices de los mensajes que coincidan con el criterio de búsqueda. Este descubrimiento que he hecho sobre IMAP es importantísimo para mí, ya que ahora los problemas que me han ido surgiendo con las búsquedas desaparecerán automáticamente, ya que las búsquedas son prácticamente instantáneas para el usuario, y no va a ser necesario esperar a que se complete un proceso de búsqueda que descargaba información de todos y cada uno de los mensajes, proceso que era lentísimo. Otro problema que tenía POP, al menos con Gmail (que es donde he hecho hasta ahora las pruebas) era que había que activar el servicio POP cada vez que se recibía un archivo con Unimail (aunque ya estuviera activado), si no, Unimail no detectaba dicho archivo; ahora con IMAP se supone que sólo hay que activarlo una vez, y Gmail sólo tiene 2 opciones para IMAP: activarlo o desactivarlo. Debido a esto, ahora el usuario sólo se preocupará de activar IMAP 1 vez, instalarse Unimail 1 vez y usar Unimail tantas veces quiera sin tener que hacer ningún proceso previo.
Estoy trabajando ya en la versión 0.5, y espero tenerla en breve. La única novedad que tendrá será el cambio de POP a IMAP, aunque se trata de una novedad importantísima. A partir de la publicación de dicha versión, lo que habrá que hacer es realizar un montón de pruebas, para verificar su buen funcionamiento y para ver que realmente IMAP es mejor que POP.
Una cuestión que podría presentarse al lector sería la siguiente: ¿por qué no haber usado IMAP desde el principio?. Bueno, las respuesta es que no lo he usado desde el principio básicamente por desconocimiento mío de este protocolo/tecnología. Sólo sabía que IMAP era más avanzado que POP y que POP era más básico o “primitivo”. Aunque, al principio, no tenía ni idea de ninguno de los protocolos, decidí usar POP porque al ser más básico mi programa podría usarse con un mayor número de servicios de e-mail y además me sería más fácil escribir código, ya que POP está mejor documentado que IMAP, al menos en la información de Python que existe en Internet y en los libros de la biblioteca de mi facultad (mis dos fuentes a la hora de investigar).
El descubrimiento de IMAP ha sido algo tardío para mí, pero ha merecido la pena. Supongo que es consecuencia de mi condición: comencé el proyecto sin tener ni idea de Python, ni del e-mail, ni de POP, ni de IMAP. Ahora, gracias a que he estado haciendo una labor más o menos de investigación, he ido aprendiendo cosas, lo cual es gratificante.
Después de publicar la versión 0.5, trabajaré en la 0.6, la cual tendrá opciones para guardar la configuración de las cuentas de e-mail usadas y esas cosas, y ya después, intentaré que la versión 0.7 disponga ya de una interfaz de usuario gráfica, lo cual quedaría muy, pero que muy, bien.