149 - Leer 2000 correos en unos segundos
Como leer 2000 correos en unos segundos con la ayuda de las herramientas que tenemos a nuestra disposición. En este caso con el potencial de GNU/Linux.
Este episodio del podcast no va de como adquirir habilidades para leer a la velocidad del rayo. No se trata ni de un truco ni de un timo. Este episodio del podcast trata de mostrarte un nuevo ejemplo del potencial que tienes bajo el capó. El potencial que tienes en el terminal. Se que soy muy pesado con esto del terminal. Pero creo que vale la pena que sepas las posibilidades que tienes y cuando llegue tu momento, sepas que está ahí, al alcance de tus dedos De nuevo. No trata de convencerte para que te pases al terminal. Ni mucho menos. No es mi intención. Se trata de que en ocasiones tenemos que contar con todo lo que tenemos a nuestro alcance. En este sentido, quiero contarte una anécdota que me sucedió recientemente. Un problema que tuve y como lo resolví. Se trata básicamente de leer 2000 correos en unos segundos.
Leer 2000 correos en unos segundos
Como sabes o si no lo sabes te lo cuento, todos los domingos envío un boletín semanal o al menos eso intento. ¿Que contiene el boletín? Recursos relacionados con los tutoriales y artículos que he publicado esa semana, alguna imagen que he visto de Blender que como siempre me tiene fascinado, y un resumen de lo publicado esa semana.
El objetivo es que no te pierdas absolutamente nada. Ponerte las cosas lo más fáciles posibles, por que lo cierto es que estamos bombardeados con información. Así que, si la información te llega mas curada, pues casi que mejor, ¿no te parece?
Suscribir al boletín
¿Como te puedes suscribir al boletín? En atareao.es/suscribir. Para el envío del boletín, utilizo un servicio de terceros. De otra forma, teniendo en cuenta el volumen de correos, se podría considerar spam. Vamos, no es que podría considerarse spam, es que se considera spam, y rápidamente se limitado por la mayoría de los gestores de correo electrónico
El procedimiento
Si ya estás suscrito al boletín, mas o menos conocerás el procedimiento. Cuando haces clic en el botón suscribir, te envío un primer correo, en el que te indico que hagas clic para completar la suscripción. De esta forma queda claro que te has apuntado al boletín y se da cumplimiento al RGPD.
Internamente yo me he mandado a mi mismo, un correo diciendo que tu estás en proceso de suscripción, con tu nombre y correo. Así hago seguimiento de todo el proceso.
Cuando tu haces clic en el enlace de completar la suscripción, te lleva de nuevo a atareao.es, donde te doy las gracias por suscribirte, y te cuento lo del boletín, y alguna que otra cosilla mas.
Es en este momento cuando procedo a hacer el registro en el proveedor de correo electrónico, para guardar allí nombre y correo. Además de esto también registro un token, que luego utilizo para el caso de que te quieras dar de baja. Y de nuevo envío un correo que con el asunto «Completo» o «Incompleto» para el caso de que haya tenido algún problema en el registro en el proveedor de servicios. De nuevo esto es importante de cara al RGPD.
En cualquiera de los casos, estás suscrito, pero en el caso de incompleto, no recibirás correos electrónicos, porque no estás apuntado en el servicio de terceros. Mea culpa, el proceso ha fallado.
Esto que podrías considerar como un error puntual, no lo es, es un problema mas común de lo que podrías pensar. Y las razones son variadas y diversas.
El problema
Resulta que el proveedor del servicio que utilizo para enviar el boletín ha actualizado recientemente el servicio. Y entre las actualizaciones que ha incluido está la modificación de la API. Si no sabes lo que es una API, decirte que no es mas que una forma de intercambiar información entre dos servicios. ¿Que dos servicios? atareao.es y el proveedor del servicio de correo electrónico.
La cuestión es como te decía, que al modificar la API, no se actualizaba la información en el proveedor de servicio, con lo que no terminabas suscrito en el boletín…. o casi
De cuantos correos hablamos…. Pues como dice el título del podcast estamos hablando de unos 2000… ¿porque tantos? Bueno… Como digo yo guardo todos los correos, y esto es un goteo que ha sido poco a poco, no es todo de golpe, había algunos previos, otros que se produjeron por alguna modificación que hice yo, otros por la modificación de la API… en fin que son 2000
- ¿Como saber quien se ha dado de alta correctamente?
- ¿Quien está ya registrado?
- ¿Como leer los 2000 correos?
- ¿Como sacar el nombre y correo de esas 2000 correos? Por que el correo viene en el cuerpo del mensaje.
La solución Bash y herramientas
Lo primero es descargar todos los correos electrónicos para poder procesarlos de forma sencilla. Para esto hay un complemento en Thunderbird llamado ImportExportTools que te permite exportar todos los correos.
Evidentemente esto no es una solución única para Thunderbird, entiendo que en cualquier otro gestor de correo electrónico tendrás la posibilidad de hacerlo. Pero no solo en clientes offline, en Gmail también es posible hacerlo
Así, por ejemplo en el caso de gmail,
- la solución pasa por aplicar una etiqueta a todos aquellos correos que quieres descargar.
- Posteriormente abre la dirección del panel de control de Google
- Vas a GO TO GMAIL y haces clic en los tres puntillos que aparecen a la derecha
- Seleccionas Download Data
- Selecciona el formato MBOX
- Seleccionas como quieres descargarlo. Por ejemplo email
- La frecuencia de descarga. Una vez
- Y el formato y tamaño
Una vez descargado, lo tienes realmente fácil… Ya solo tienes que aplicar lo que has visto en el tutorial sobre el terminal. En particular el capítulo dedicado a los filtros awk, grep, sed y cut. Y en pocos segundos tienes la información que necesitas.
En mi caso particular necesitaba un archivo con formato CSV, aunque a mi me gusta de los que van separados por punto y coma, mas que por comas. Mas que nada por no liarla con los decimales… Pues esto resultó tan sencillo como,
grep "ha completado la suscripción" incompleta.mbox | awk '{print $1";"$4}' > perdidos.txt
Y esto me genera un bonito archivo csv con el listado que andaba buscando. Como ves he utilizado el terminal para leer 2000 correos electrónicos en unos pocos segundos… bueno, yo diría mas bien en unos pocos milisegundos.
Resumiendo
Tenemos, y lo digo por mi el primero, que tener la mente mas abierta, pensar mas allá, y sacarle el máximo provecho a las herramientas que tenemos al alcance de nuestras manos. Muchas veces me obsesiono, y supongo que a ti también te pasará, en utilizar las mismas herramientas, y no pienso que con la ayuda del terminal, por poner este caso como ejemplo, podría resolverlo de una manera mucho mas sencilla y eficiente.
Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.