Extracción de correos: la guía completa (2026)

La extracción de correos es expresión regular más disciplina. La regex es la parte fácil: lograr resultados consistentes en currículums, correos, páginas web, volcados de CSV y PDFs requiere un flujo de trabajo. Los patrones, las trampas, los trucos de ofuscación que hay que vigilar y los límites legales y de entregabilidad que determinan qué puedes hacer con la lista una vez que la tienes.

En esta página

La regex que hace el 95 % del trabajo

La regex práctica estándar para correos. No la que cumple la RFC al pie de la letra, sino la que la gente usa de verdad:

[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}

Tres partes: la parte local (todo lo que va antes de la @), el dominio (todo lo que va entre la @ y el último punto) y el dominio de nivel superior (todo lo que va después del último punto). Cada parte tiene una clase de caracteres lo bastante permisiva para captar las direcciones del mundo real sin tragarse basura evidente.

Esta regex extrae correctamente:

  • alice@example.com. Caso básico
  • bob.smith+filter@example.co.uk. Filtrado con signo más, dominio de varias partes
  • support_team@subdomain.company.io. Guiones bajos, subdominio, TLD moderno

Y rechaza correctamente:

  • not-an-email. Le falta la @
  • @example.com. Parte local vacía
  • alice@. Le falta el dominio
  • alice@example. Le falta el TLD
Publicidad

Dónde falla la regex — el 5 % que tienes que resolver

Puntuación al final. El texto «...escríbeme a alice@example.com.» extrae alice@example.com. con un punto final. El [a-zA-Z]{2,} de la regex se traga sin problema los puntos que en realidad pertenecen a la oración que rodea la dirección. Solución: procesa después y elimina los .,;:)>}] que queden al final.

Direcciones internacionalizadas. Las direcciones de correo reales de la RFC 6531 pueden contener caracteres no ASCII en la parte local: 用户@example.com. La regex estándar no las capta. En la práctica son raras. La mayoría de las herramientas de extracción (incluido el Extractor de Correos de TextKit) las omiten de forma predeterminada y ofrecen una opción para los pocos proyectos donde importan.

Partes locales entre comillas. La RFC completa permite "strange address"@example.com con una parte local entre comillas. Casi ninguna dirección real usa esto. Omitirlas está bien.

Comentarios. La RFC completa permite (comment)alice@example.com: comentarios entre paréntesis incrustados. No se ven en la práctica fuera de las baterías de pruebas de la RFC. Omitirlos está bien.

Ofuscación — los patrones a reconocer

Las páginas web, las biografías de redes sociales y los currículums suelen esconder las direcciones de correo para disuadir a los scrapers. Los cinco patrones más comunes:

PatrónReconstruido
alice [at] example [dot] comalice@example.com
alice (at) example (dot) comalice@example.com
alice@example DOT comalice@example.com
alice AT example.comalice@example.com
alice{at}example{dot}comalice@example.com

Una segunda pasada de extracción con coincidencia relajada, que reemplaza los tokens ofuscados antes de aplicar la regex estándar, recupera la mayoría de estos casos. Activa «Detectar correos ofuscados» en el Extractor de Correos para habilitar esa pasada.

Dos patrones que no se pueden revertir de forma fiable:

  • Correos en imagen. La dirección se renderiza como un PNG dentro de la página. Hace falta OCR, y el OCR rara vez es perfecto con texto pequeño.
  • Ensamblados con JavaScript. La dirección se concatena en tiempo de ejecución a partir de fragmentos de cadena. El scraping de texto estático no la ve; solo la verá el scraping con navegador headless.

El paso de deduplicación

Una sola fuente contiene a menudo el mismo correo varias veces: en un encabezado, en una firma, en una línea de copia y en una referencia dentro del texto. Deduplica siempre.

La deduplicación menos obvia: la comparación sin distinguir mayúsculas. Alice@example.com y alice@example.com son la misma dirección. Pasa todo a minúsculas antes de comparar.

La deduplicación más complicada: los alias con punto en Gmail. alice.smith@gmail.com, alicesmith@gmail.com y a.l.i.c.e.smith@gmail.com son todos el mismo buzón de Gmail. En los dominios que no son Gmail, los puntos son significativos. El paso de colapsar los puntos es específico de Gmail y rara vez compensa la complejidad, salvo que toda la lista sea de Gmail.

Un pegado, lista deduplicada. El Extractor de Correos se encarga de la regex, la normalización a minúsculas, la deduplicación, la detección de ofuscación y la exportación a CSV. Todo local en el navegador, sin subir nada.

La verificación de entregabilidad — qué es una dirección real

La extracción te da una cadena válida desde el punto de vista sintáctico. La entregabilidad en el mundo real exige tres verificaciones:

  1. Que exista el registro MX. Una consulta DNS sobre el dominio. Barata, se puede hacer a gran escala y no toca el servidor del destinatario. Alrededor del 5 % de las direcciones extraídas fallan aquí: dominios mal escritos, dominios vencidos y direcciones desechables para formularios de registro.
  2. Que el servidor SMTP acepte la dirección. Abrir una conexión, enviar RCPT TO: y leer la respuesta. Caro, te mete en listas negras si lo haces a volumen, y muchos servidores mienten (las direcciones catch-all aceptan cualquier cosa).
  3. Que el patrón de la dirección coincida con el esquema conocido. Si viste que firstname.lastname@company.com funciona para una persona de una empresa, lo más probable es que direcciones parecidas funcionen para otras. Gratis, escala sin límite, pero sin confirmación dirección por dirección.

Los servicios reales de validación masiva (NeverBounce, ZeroBounce, Hunter Email Verifier) combinan los tres. Para listas pequeñas, basta con el MX. Es barato y atrapa el error más común.

Tres reglas cubren la mayoría de las jurisdicciones, pero consulta a un abogado para cualquier programa comercial:

  1. CAN-SPAM (EE. UU.). El correo comercial no solicitado está permitido si (a) incluyes un enlace claro para darse de baja, (b) lo respetas en un plazo de 10 días, (c) no usas líneas de asunto engañosas y (d) incluyes una dirección postal física. No hace falta consentimiento previo.
  2. GDPR (UE). El correo de marketing a residentes de la UE requiere una base legal. Para la mayoría del marketing saliente, eso significa consentimiento previo explícito. Extraer y luego enviar spam a direcciones de la UE es una infracción por cada destinatario, con multas de hasta el 4 % de la facturación global.
  3. CASL (Canadá) y Spam Act 2003 (Australia). Ambas exigen consentimiento previo, implícito o expreso, para el correo comercial. Las dos son más estrictas que CAN-SPAM.

La consecuencia práctica: extraer para uso interno, búsqueda de contactos, deduplicación, limpieza de listas y comunicación uno a uno está permitido casi en todas partes. El envío en frío masivo a direcciones recopiladas de la UE es ilegal en la UE; el envío en frío masivo a direcciones recopiladas de Canadá y Australia es ilegal allí. El envío en frío masivo a direcciones recopiladas de EE. UU. es técnicamente legal bajo CAN-SPAM, pero la mayoría de los ESP (Mailchimp, ConvertKit, Brevo) lo prohíben en sus términos. Enviarlo hará que suspendan la cuenta.

La pregunta de navegador vs servidor

La extracción de correos puede correr en tres lugares. Cada uno tiene una contrapartida distinta:

DóndeMejor paraPrivacidadVelocidad
Navegador (regex en JS)Texto pegado de hasta ~50 MBLa mejor. Nada sale del dispositivo~1 millón de caracteres/s
Script local (Python, grep -E)Archivos de más de 50 MB, tuberíasLa mejor. Solo local~5 millones de caracteres/s
Servidor (API de pago)Scraping continuo, validación, escalaLa peor. Los datos salen de tu controlLimitada por la red

Para el caso de uso típico (limpiar un CSV, analizar un registro de chat, sacar direcciones de un currículum), el navegador es la herramienta correcta. El Extractor de Correos de TextKit se encarga del pegado, la deduplicación, el orden, las minúsculas y la exportación a CSV sin subir nada.

Los cinco patrones de flujo de trabajo

  1. Limpieza de currículums. Pega el texto del currículum de un candidato. Extrae la una o dos direcciones de contacto. Confirma que coincidan con la sección de contacto.
  2. Recolección de contactos en páginas web. Mira el código fuente, copia el texto de la página, pégalo y extrae. Útil para encontrar direcciones de una página de contacto repartidas entre varias secciones.
  3. Deduplicación de CSV. Pega una columna de CSV o un volcado de varias columnas. Extraer → deduplicar → reexportar. Limpia listas que crecieron a través de varias adquisiciones y rutas de importación.
  4. Análisis de registros de chat. Exportación de Slack, hilo de correo, copia de seguridad de Discord. Extrae direcciones de las líneas de remitente, las firmas y las menciones dentro del texto. Aquí el paso de deduplicación es el que más importa.
  5. Auditoría de envíos de formularios. Respuestas de un formulario volcadas en un archivo de texto. Extrae el campo de correo de todas las respuestas para verificar que la entrada estaba limpia.

Para extraer, deduplicar, ordenar y exportar a CSV en un solo paso, sin subir nada, usa el Extractor de Correos de TextKit.

Preguntas frecuentes

¿Es legal extraer correos de un sitio web?

La extracción en sí no es ilegal en la mayoría de las jurisdicciones. Enviar correo masivo no solicitado a las direcciones extraídas casi siempre lo es. CAN-SPAM, GDPR, CASL y la Spam Act 2003 de Australia se aplican todas. La extracción para buscar un contacto personal, limpiar datos internos o investigar suele estar permitida; el envío en frío a listas recopiladas, por lo general no.

¿Cómo detecto correos ofuscados como «name [at] company [dot] com»?

Con una segunda pasada de regex que reconozca [at], (at), {at}, [dot], (dot) y las palabras sueltas at y dot con límites de espacio. El Extractor de Correos de TextKit lo trae como una opción que puedes activar.

¿Por qué algunos correos se extraen con puntuación al final?

Porque la clase de caracteres del límite de palabra de la regex incluye caracteres que no son válidos en la parte local de un correo. Después de extraer, ejecuta una pasada de limpieza que elimine los puntos, las comas, los puntos y coma y los corchetes de cierre que queden al final.

¿Cómo sé cuáles de los correos extraídos son reales?

Tres señales: que existan los registros MX del dominio (barato de comprobar), que el servidor SMTP acepte la dirección (más caro, parece spam) y que el patrón de la dirección coincida con el esquema conocido del dominio (gratis si ya viste una dirección válida). Los servicios de validación masiva hacen las tres.

¿Debo pasar los correos extraídos a minúsculas?

La parte local de una dirección de correo distingue mayúsculas según la RFC 5321. En la práctica, todos los proveedores importantes la tratan sin distinguir mayúsculas. Pasar a minúsculas al extraer evita filas duplicadas para Alice@example.com y alice@example.com.

¿Qué tan rápida es la extracción de correos en el navegador?

Alrededor de un millón de caracteres por segundo con una regex de una sola pasada en una laptop moderna. Un archivo de texto de 10 MB se procesa en unos 10 segundos sin salir del navegador.

Publicidad

Seguir leyendo

Escrito por . Creamos las herramientas sobre las que escribimos. Prueba el Extractor de Correos que usamos en este artículo.