Code Preview
#!/usr/bin/env python3
import re, dns.resolver
def validate_email(email):
# Regex check
pattern = r'^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}$'
if not re.match(pattern, email):
return False, 'Invalid format'
# MX record check
try:
domain = email.split('@')[1]
dns.resolver.resolve(domain, 'MX')
return True, 'Valid'
except:
return False, 'No MX records'
# Process list
results = []
with open('emails.csv') as f:
for email in f:
valid, reason = validate_email(email.strip())
results.append((email, valid, reason))
# Full script in download...