from flask import Flask, request, render_template_string import re import dns.resolver app = Flask(__name__) def verificar_formato_correo(email): """ Verifica si el correo electrónico tiene un formato válido. """ regex = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$' return re.match(regex, email) is not None def verificar_dominio(dominio): """ Verifica si el dominio tiene un servidor de correo activo (MX record). """ try: mx_records = dns.resolver.resolve(dominio, 'MX') return len(mx_records) > 0 except (dns.resolver.NoAnswer, dns.resolver.NXDOMAIN, dns.resolver.NoNameservers): return False def verificar_correo(email): """ Verifica si el correo electrónico es válido. """ if not verificar_formato_correo(email): return False, "Formato de correo electrónico inválido" dominio = email.split('@')[1] if not verificar_dominio(dominio): return False, "Dominio no tiene servidor de correo activo" return True, "Correo electrónico válido" @app.route('/', methods=['GET', 'POST']) def index(): mensaje = '' if request.method == 'POST': email = request.form['email'] es_valido, mensaje = verificar_correo(email) return render_template_string(''' Verificación de Correo Electrónico

Verificación de Correo Electrónico

{% if mensaje %} {% endif %}
''', mensaje=mensaje) if __name__ == '__main__': app.run(debug=True)