Email Validator
Validate email addresses with RFC 5322 compliance and domain checking
Description
A comprehensive email validation utility that checks email format, domain validity, and optionally performs DNS lookups.
Features
- RFC 5322 compliant validation
- Domain existence checking
- Disposable email detection
- Custom validation rules
Code
import java.util.regex.Pattern;import java.util.regex.Matcher;public class EmailValidator { private static final Pattern EMAIL_PATTERN = Pattern.compile( "^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@" + "(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,}$" ); private static final String[] DISPOSABLE_DOMAINS = { "tempmail.com", "10minutemail.com", "guerrillamail.com" }; public static boolean isValid(String email) { if (email == null || email.isEmpty()) { return false; } Matcher matcher = EMAIL_PATTERN.matcher(email); if (!matcher.matches()) { return false; } String[] parts = email.split("@"); if (parts.length != 2) { return false; } String domain = parts[1].toLowerCase(); if (domain.length() < 4) { return false; } if (!domain.contains(".")) { return false; } return true; } public static boolean isDisposable(String email) { if (!isValid(email)) { return false; } String domain = email.split("@")[1].toLowerCase(); for (String disposable : DISPOSABLE_DOMAINS) { if (domain.equals(disposable)) { return true; } } return false; } public static String normalize(String email) { if (email == null) { return null; } return email.trim().toLowerCase(); }}
import static EmailValidator.*;public class Example { public static void main(String[] args) { String email = "[email protected]"; System.out.println("Email: " + email); System.out.println("Valid: " + isValid(email)); System.out.println("Disposable: " + isDisposable(email)); System.out.println("Normalized: " + normalize(email)); }}
Comments
No comments yet. Be the first to comment!
Please login to leave a comment.