Validator Alamat Email
Memvalidasi format satu atau beberapa alamat email.
Tentang alat ini
Validator alamat email adalah alat yang sangat penting bagi siapa saja yang perlu memverifikasi bahwa alamat email mematuhi aturan format yang tepat. Baik Anda membuat formulir pendaftaran, membersihkan daftar kontak, atau sekadar memeriksa apakah email terstruktur dengan benar, validator ini menggunakan aturan format email standar untuk mengkonfirmasi bahwa alamat secara sintatik valid. Validasi email membantu mencegah kesalahan ketik dan memastikan bahwa upaya komunikasi tidak akan ditolak secara otomatis oleh server email karena alamat yang salah format.
Menggunakan alat ini sangat mudah: tempel satu alamat email atau beberapa alamat (satu per baris atau dipisahkan dengan koma) ke dalam bidang input dan klik validasi. Alat ini memeriksa setiap alamat terhadap standar RFC 5322 dan aturan format email umum, melaporkan alamat mana yang valid dan mana yang mengandung kesalahan. Kasus penggunaan tipikal mencakup memverifikasi daftar email pelanggan sebelum mengirim buletin, memvalidasi input pengguna dalam formulir pendaftaran, dan memeriksa database kontak untuk masalah pemformatan sebelum integrasi sistem.
Validator ini sangat berguna bagi administrator data, pengembang yang mengintegrasikan verifikasi email ke dalam aplikasi, dan bisnis yang mengelola daftar email. Perhatikan bahwa alat ini hanya memeriksa format alamat email—alat ini tidak memverifikasi apakah alamat benar-benar ada atau saat ini aktif. Untuk validasi email yang komprehensif, Anda mungkin masih perlu menggabungkan ini dengan email konfirmasi atau pemeriksaan SMTP dalam sistem produksi.
Pertanyaan yang Sering Diajukan
Implementasi Kode
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.