Regex Is Not Email Validation
Every developer has done this at some point:
import re
pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
is_valid = re.match(pattern, email)
This catches not-an-email. But it doesn't catch:
-
user@disposable-temp-mail.com(throwaway email) -
admin@company.com(role-based, not a real person) -
user@nonexistent-domain-xyz.com(domain doesn't exist) -
test@gmail.com(technically valid but suspicious)
What Real Email Validation Looks Like
A proper email validation checks:
1. Syntax Check
Yes, regex. But it's just step 1.
2. MX Record Verification
Does the domain actually have a mail server? nonexistent-domain-xyz.com would fail here.
import requests
response = requests.get(
"https://dataforge.p.rapidapi.com/validate/email",
headers={
"X-RapidAPI-Key": "YOUR_KEY",
"X-RapidAPI-Host": "dataforge.p.rapidapi.com"
},
params={"email": "user@fake-domain.com"}
)
# Returns: mx_exists: false
3. Disposable Email Detection
Services like Guerrilla Mail, Temp Mail, 10MinuteMail create throwaway addresses. If your SaaS accepts these, you'll have fake signups inflating your metrics.
DataForge checks against 140+ known disposable email domains.
4. Free Provider Detection
Sometimes you want to know if it's a business email or a free Gmail/Yahoo account. Useful for B2B lead qualification.
5. Role-Based Detection
Emails like info@, admin@, support@ are not personal addresses. They often go to shared inboxes or nobody.
6. Deliverability Score
A combined score from 0-100 based on all the above checks.
Try It Free
DataForge API gives you 500 free email validations per month. No credit card needed.
One API call. Full validation. Done.
Top comments (0)