İçeriğe geç
🛠️ToolsShed

E-posta Adresi Doğrulayıcı

Tek veya birden fazla e-posta adresinin format uyumluluğunu doğrular.

Bu araç hakkında

E-posta adresi doğrulayıcı, e-posta adreslerinin uygun biçim kurallarını takip ettiğini doğrulaması gereken herkes için gerekli bir araçtır. Bir kayıt formunu oluşturmakta olsanız, bir iletişim listesini temizlemekta olsanız veya bir e-postanın düzgün bir şekilde yapılandırılıp yapılandırılmadığını kontrol etmekta olsanız, bu doğrulayıcı standart e-posta biçim kurallarını kullanarak adresler sözdizimsel olarak geçerli olduğunu doğrular. E-posta doğrulaması yazım hatalarını önlemeye yardımcı olur ve iletişim denemelerinin hatalı biçimlendirilmiş adresler nedeniyle posta sunucuları tarafından otomatik olarak reddedilmemesini sağlar.

Bu aracı kullanmak basittir: tek bir e-posta adresi veya birden çok adresi (satır başına bir tane veya virgülle ayrılmış) giriş alanına yapıştırın ve doğrula'yı tıklatın. Araç, her bir adresi RFC 5322 standartları ve yaygın e-posta biçim kurallarına karşı kontrol eder, hangi adresler geçerli olduğunu ve hangilerinin hata içerdiğini raportar. Tipik kullanım örnekleri arasında bülten göndermeden önce müşteri e-posta listelerinin doğrulanması, kayıt formlarında kullanıcı girişinin doğrulanması ve sistem entegrasyonundan önce iletişim veritabanlarında biçimlendirme sorunlarını kontrol etme yer alır.

Bu doğrulayıcı özellikle veri yöneticileri, uygulamalara e-posta doğrulaması integre eden geliştiriciler ve e-posta listelerini koruyan işletmeler için yararlıdır. Bu aracın yalnızca bir e-posta adresinin biçimini kontrol ettiğini ve adresin gerçekten var olup olmadığını veya şu anda etkin olup olmadığını doğrulamadığını lütfen unutmayın. Kapsamlı e-posta doğrulaması için, üretim sistemlerinde bunu onay e-postaları veya SMTP kontrolleriyle birleştirmeniz gerekebilir.

Sıkça Sorulan Sorular

Kod Uygulaması

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.