Generador de emails falsos
Direcciones de email sintéticas para fixtures, tests y prototipos. Usan los dominios reservados por IANA para documentación, así nadie recibe correo por accidente.
Por qué existen los dominios .example
La IANA (Internet Assigned Numbers Authority) reserva los dominios example.com,
example.net y example.org en la RFC 2606 específicamente para
usar en documentación, ejemplos y casos donde no se quiere apuntar a un dominio real.
Eso garantiza dos cosas: nadie puede registrarlos (no van a aparecer apuntando a otro
sitio), y los servidores de email los rechazan automáticamente.
Lo mismo aplica a TLDs reservados como .test, .invalid,
.localhost y .local: ninguno resuelve en internet pública,
son seguros para datos sintéticos.
Diferencia con emails temporales reales
Un email temporal real (Mailinator, 10minutemail, Tempmail) es una bandeja de entrada pública: cualquiera puede ver los mensajes que llegan. Sirven para registrarse en servicios sin dar tu email real, pero no para testing automatizado: no controlás el timing de la entrega y no son privados.
Los emails generados acá son distintos: no reciben nada. Son cadenas con formato válido pero sin bandeja detrás. Si tu test envía correo a uno de estos, rebota. Eso es lo que querés en CI/CD: ningún sistema externo se ve afectado por tu suite de tests.
Cuándo usar cada estilo de email local
- Basado en nombre (
juan.perez@example.com): cuando querés que el email "se vea" como real, asociado a un nombre. Útil para demos y screenshots. - Aleatorio (
kx7p2qm9@example.com): cuando solo necesitás unicidad y volumen. Útil para fixtures que prueban listas largas. - user1, user2…: cuando importa el orden y la trazabilidad. Útil para tests donde tenés que referirte a "el cuarto usuario" sin ambigüedad.
Errores comunes con datos de email en testing
- Usar tu email real. Si una corrida de tests salta un guard y manda correos, llenás tu inbox o, peor, le mandás spam a un compañero.
- Usar dominios que parecen falsos pero son reales.
fake.com,nope.comy muchos otros son dominios registrados. Quedate conexample.com. - Hardcodear un solo email para todo. Si todos los usuarios de tests tienen el mismo email, no detectás bugs de unicidad en la base.
- No marcar los emails como sintéticos. Un flag
is_test_dataen la base te permite limpiar después.
Buenas prácticas para envío en entornos no productivos
Aún con emails sintéticos, conviene blindarse contra envíos accidentales:
- En desarrollo y staging, configurá un mail catcher (MailHog, Mailtrap, mailpit). Captura todo lo que el sistema "envía" sin que llegue a nadie.
- Whiteliste solo emails internos al sistema de envío fuera de producción.
- Implementá un kill switch: una variable de entorno que apaga el envío real en cualquier ambiente que no sea producción.
- Logueá todo intento de envío para detectar fugas.
Validación de email a tener en cuenta
Tu generador da emails con formato válido (nombre@dominio.tld). Distintas
librerías validan distinto:
- Regex simple (HTML5, frontend): los acepta sin problema.
- RFC 5321 estricto: los acepta.
- Validación con DNS/MX lookup:
example.comtiene MX (apunta a sí mismo), pero la dirección concreta no existe. Algunas librerías van a rechazarlos. - Validación SMTP: rebota.
Para tests donde necesites un email "que pase validación profunda", usá un email real descartable. Para todo lo demás, estos sintéticos alcanzan.
Preguntas frecuentes
¿Reciben correo?
No. Los dominios example.* están reservados por IANA y todo correo rebota.
¿Diferencia con email temporal?
Un email temporal sí recibe correo unos minutos. Estos no reciben nada, son solo strings con formato válido.
¿example.com vs test.com?
example.com está reservado por IANA. test.com no, podría ser registrado. Quedate con example.com para fixtures críticos.
¿Pasan validaciones?
Las de formato sí. Las de DNS/MX o SMTP los rechazan, que es lo deseable.