extraer mails gmail

Como ya saben los miembros de la Comunidad, estoy (estamos) en CyberBrainers haciendo un trabajo de conceptualización y simplificación de todos los procesos de generación de contenido que hoy en día tengo (y tenemos).


El grupo ha crecido tanto que era hora de que nos pusiéramos serios y le diéramos un buen empujón, quitando lo que sobra, y unificando lo restante.

Parte de este cambio lo habrás empezado a ver en el contenido exclusivo que publico por estos lares. Del sistema de mecenazgo que tenía hasta ahora, hemos pasado a uno infinitamente más simple:

  • Ya no existen varias formas de hacerte «mecenas» de la Comunidad, sino solo una: El Club Negocios Seguros, que solo tiene una suscripción mensual (no la barbaridad de opciones que tenía hasta ahora).

Además, he juntado los beneficios antiguos en ese único nivel, por lo que la newsletter del martes y la del jueves exclusiva para miembros pasan a estar en el mismo saco, al igual que el grupo privado de Telegram y el resto de ventajas.

Más sencillo de explicar, y por tanto, más sencillo de vender.

Si eres un friki de la tecnología. Si te gusta esto de «hackear» el sistema. Si eres un inconformista. O si trabajas y/o te estás formando en la industria TIC, el Club Negocios Seguros es tu sitio.

Te dejo por aquí el enlace para que puedas ver todo lo que incluye.

Cómo extraer direcciones de correo de GMail

Pues bien, dentro de ese proceso de simplificación, le ha tocado el turno de gestionar unitariamente todo el sistema de mailing que tengo ahora mismo montado.


De esto seguramente hablaré más adelante, pero uno de los problemas que me he encontrado a la hora de hacerlo, es que necesitaba exportar los correos de aquellos usuarios que habían pedido acceso a los diferentes servicios que tenemos entre CyberBrainers, EliminamosContenido, PabloYglesias y Ediciones PY.

Y ahí viene el tema, porque lo que a priori parecía sencillo (tengo «simplemente» que exportar las direcciones de correo de miles de mails recibidos durante estos últimos años), tiene más miga que otra cosa.

¿El por qué? Pues porque, por defecto, Google (GMail) no ofrece esta funcionalidad.

Así pues, he estado un par de días investigando, y probando alguna herramienta de pago, pero viendo los precios que me llegaba a costar el servicio (por ejemplo CloudHQ te ofrece hacerlo, pero solo incluye gratis la exportación de los 50 primeros mails, y luego hay que pagar una suscripción de más de 600$…), me he puesto manos a la obra para encontrar la manera de hacerlo sin pagar nada.

Eso sí, dedicándole un buen tiempo…

Te cuento dónde está el truco, y así, si el día de mañana te toca a ti, te vas a ahorrar no pocas horas.

¡Vamos al lío!


segmentar correos gmail

1.- Segmentar los correos en etiquetas de GMail

El primer paso parece obvio: Necesitamos encontrar la manera de sacar la información (los correos) que tiene GMail a una base de datos estructurada.

Y para ello, he recurrido a Google Takeout, la herramienta de migración de Google… y en especial a una serie de opciones que tiene un poco ocultas.

Porque claro, si simplemente le das a exportar tu cuenta desde Google Takeout, te vas a encontrar con que, de pronto, tienes varios gigas de descarga disponibles.

Para evitar esto e ir al grano, lo que podemos hacer es PREVIAMENTE etiquetar los correos que queramos exportar en una misma etiqueta (o en varias, como era mi caso).

Y para ello, nada mejor que usar los comandos de Google Hacking aplicados a GMail.

Gracias a ello, en mi caso, necesitaba sacar las direcciones de correo de los mails del formulario web, para asegurarme que el usuario había tenido que aceptar el aviso legal y la política de privacidad y gestión de datos (ya sabes, por eso de cumplir la RGPD europea…).

Como ves, era algo bastante específico, y da la casualidad que al menos en mi caso, todos los contactos que vienen de ese formulario tienen una estructura semejante a:


Mensaje en [Web] de [email del usuario].

Así pues, realicé con los comandos de Google Hacking una búsqueda en GMail (varias, realmente, ya que necesitaba una para cada web) y voilà, ahí ya tenía todos los correos segmentados.

Luego no es más que marcarlos todos y etiquetarlos en una categoría que será temporal (la necesitamos para hacer los siguientes pasos).

Antes de terminar con este punto, un matiz.

Por algo que te explicaré a continuación, vamos a necesitar que la exportación final de cada base de datos pese menos de medio giga.

Te digo esto porque si ya de base sabes que, como es mi caso, hablamos de miles de emails, no te va a quedar otra que crear etiquetas… segmentadas por fechas, para que haya menos emails en cada etiqueta, y por tanto podamos luego exportarlas en un documento de peso menor a 500MBs.

exportar correos gmail mbox

2.- Exportar los datos en bruto de GMail en un archivo MBOX

Ya con los correos metidos en al menos una etiqueta de GMail, podemos acceder a Google Takeout (ES) y exportarlos.

Eso si, importante que:

  • Desmarquemos inicialmente todos los productos de Google (por defecto ya vienen varios cuyos datos no queremos tener que descargar).
  • Bajemos hasta dar con Correo, y lo seleccionamos.
  • Le damos al botón de «Se han incluido todos los datos de Mail».
  • En la nueva pestaña, desmarcamos la opción «Incluir todos los mensajes de Correo» y cada una de las opciones por defecto activas, y seleccionamos únicamente la etiqueta o una de las etiquetas creadas en el punto anterior.
  • Le damos a aceptar, y en el final de la página, a Siguiente Paso, aceptando también.

Ahora nos tocará esperar.

Como realmente estamos hablando de una descarga de correos en un archivo MBOX, es muy probable que aunque te diga que puede tardar horas o días, en apenas dos o tres minutos Google te avise por correo de que ya tienes para descargar el archivo en cuestión. Entras en el enlace, y lo descargas.

Pasamos entonces al punto 3 :D.

extraer mails gmail

3.- Convertimos el fichero MBOX en CSV

Los ficheros MBOX son ficheros de gestión de correos, y por tanto solo son ejecutables con programas de emails como Outlook o Thunderbird.

Realmente lo que nosotros queremos es poder trabajar estructuradamente con los datos, no consumir su contenido, y para ello no hay nada mejor que un archivo CSV.

Así pues, toca transformar ese fichero MBOX en CSV, o XLS, o en definitiva cualquier archivo ejecutable en un excel.

Ahora bien, ¿te acuerdas que te dije que el fichero resultante no debía pesar más de 500MBs?

Esto es debido a que después de volverme loco buscando servicios que permitieran convertir MBOX en CSV, he dado con este (EN), que tiene la particularidad de que todo el proceso se hace en local (el archivo se convierte desde tu ordenador), frente a la mayoría de servicios semejantes que requieren que lo subas a la nube (con el riesgo de privacidad que eso supone).

A cambio, eso sí, necesitas que el fichero pese menos de 500MBs. Si pesa más, ya sabes lo que te toca (ir al punto 1 y segmentar tus correos en dos o más etiquetas de GMail).

Existe por supuesto la opción de utilizar algún programa en Python (EN), como me recomendaban los miembros del club en la conversación que teníamos por Telegram. Pero mira, ya había dado con esta herramienta, y la verdad es que me pareció comodísima.

Simplemente subes el fichero MBOX, y te lo devuelve como un CSV a cambio de que les dejes un email (puedes luego no aceptar la suscripción si no quieres recibir su newsletter).

extraer correo excel

4.- «Limpiar el CSV» para quedarnos con lo que que queremos

Ahora empieza la parte fea de todo el proceso.

Tenemos un CSV con todos los correos. Pero nosotros solo queremos alguna información que está ahí (puede ser el nombre de la persona y el mail, por ejemplo).

Para ello, toca hacer limpieza del mismo.

Obviamente, las acciones a partir de ahora dependerán de cómo tienes estructurado tú los correos, pero en líneas generales, y presuponiendo que lo que quieres obtener es la dirección de correo, seguramente tengas que hacer los siguientes pasos:

  • Transformar el CSV en un XLS para poder trabajar por columnas. Esto depende de la versión de excel o aplicación de cálculo que uses, pero en casi todas habrá una parte llamada datos, donde tienes que decirle que coja los datos del archivo CSV, y en la previsualización, asegurarte que en vez de ver un listado infinito de caracteres, tienes todo ordenado por columnas y filas.
  • Borrar todas las columnas que no necesitas: Si solo necesitas los correos, puedes eliminar todas las columnas y dejar solo la de From.
  • Quedarte únicamente con el correo: El problema que seguramente te encontrarás es que la columna From tiene muchas más cosas además de la dirección de correo en sí. Y encima será diferente en cada fila (a veces te aparecerá el nombre seguido de unos corchetes, otras veces solo los corchetes, otras veces el servidor desde donde se envía…). Para evitarlo, necesitamos una fórmula que busque en cada una de las filas el formato de correo, y nos lo «formatee». Esto yo al menos lo he hecho con esta fórmula creada por un tal El Inge Francisco (ES). La descargas, la instalas, y la invocas mediante el comando «=ExtraerCorreo()».
  • Eliminar duplicados: Una vez tengamos ya solo los correos en una columna, mi recomendación es crear una nueva hoja y copiarlos solo como valores (para que no hereden la fórmula). Y una vez ya tenemos los correos en texto plano, usar la acción de eliminar duplicados que tienen todas las herramientas de cálculo (excel incluido (EN)) para quitarnos todas las respuestas e hilos que seguramente estarán por ahí.
  • Hacer un repaso «a mano» para eliminar errores: Por último, es recomendable que revises, aunque sea un poco de pasada, que no se está colando nada raro, por ejemplo ordenándolos alfabéticamente. Gracias a ello, por ejemplo, yo me di cuenta de que había varios centenares de correos que tenían un signo «_» delante, seguramente porque eran una respuesta a un correo anterior. Eso y posiblemente correos que no quieras que aparezcan ahí (en mi caso había varios del tipo [email protected] o [email protected] que son los que suelo usar yo para asegurarme que funcionan los formularios de la web).
borrar duplicados excel

Con estos pasos, ya tienes la BD preparada para subirla al proveedor de mailing de turno.

Eso sí, acuérdate que deben ser correos de los que previamente hayas pedido consentimiento explícito para usar…

Si no sabes cómo se hace esto, es conveniente que revises este tutorial donde te explico cómo cumplir la GDPR a nivel de newsletter / email marketing.

Newsletter nuevas tecnologias seguridad

Imagínate recibir en tu correo semanalmente historias como esta

Suscríbete ahora a «Las 7 de la Semana», la newsletter sobre Nuevas Tecnologías y Seguridad de la Información. Cada lunes a las 7AM horario español un resumen con todo lo importante de estos últimos días.