Saltar al contenido
🛠️ToolsShed

Validador de Dirección de Correo

Valida el formato de una o varias direcciones de correo electrónico.

Acerca de esta herramienta

Un validador de direcciones de correo electrónico es una herramienta esencial para cualquiera que necesite verificar que las direcciones de correo sigan reglas de formato adecuadas. Ya sea que esté creando un formulario de registro, limpiando una lista de contactos o simplemente verificando si un correo electrónico está estructurado correctamente, este validador utiliza reglas estándar de formato de correo para confirmar que las direcciones son sintácticamente válidas. La validación de correo electrónico ayuda a prevenir errores tipográficos y garantiza que los intentos de comunicación no serán rechazados automáticamente por los servidores de correo debido a direcciones malformadas.

Usar esta herramienta es sencillo: pegue una dirección de correo única o varias direcciones (una por línea o separadas por comas) en el campo de entrada y haga clic en validar. La herramienta verifica cada dirección según los estándares RFC 5322 y las reglas comunes de formato de correo, informando qué direcciones son válidas y cuáles contienen errores. Los casos de uso típicos incluyen verificar listas de correo de clientes antes de enviar boletines informativos, validar entrada de usuarios en formularios de registro y verificar bases de datos de contactos para problemas de formato antes de la integración del sistema.

Este validador es particularmente útil para administradores de datos, desarrolladores que integran verificación de correo en aplicaciones y empresas que mantienen listas de correo. Tenga en cuenta que esta herramienta solo verifica el formato de una dirección de correo: no verifica si la dirección realmente existe o está actualmente activa. Para una validación de correo electrónico más completa, es posible que aún necesite combinar esto con correos de confirmación o verificaciones SMTP en sistemas de producción.

Preguntas Frecuentes

Implementación de Código

import re
import dns.resolver  # pip install dnspython

def validate_email_format(email: str) -> bool:
    """Validate email format using RFC 5321/5322 rules."""
    pattern = r'^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$'
    if not re.match(pattern, email):
        return False
    local, domain = email.rsplit('@', 1)
    if len(email) > 254 or len(local) > 64:
        return False
    if '..' in email or email.startswith('.') or email.endswith('.'):
        return False
    return True

def check_mx_record(domain: str) -> bool:
    """Check if domain has MX records (can receive email)."""
    try:
        answers = dns.resolver.resolve(domain, 'MX')
        return len(answers) > 0
    except Exception:
        return False

def validate_email(email: str, check_mx: bool = False) -> dict:
    result = {
        "email": email,
        "format_valid": validate_email_format(email),
        "mx_valid": None,
    }
    if result["format_valid"] and check_mx:
        domain = email.split('@')[1]
        result["mx_valid"] = check_mx_record(domain)
    return result

# Usage
emails = ["user@example.com", "invalid@", "test..user@domain.com"]
for email in emails:
    print(validate_email(email))

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.