E-posta doğrulama kullanıcı @ example veya kullanıcı @ localhost izin verilsin mi?

6 Cevap php

Ben bir e-posta doğrulama denetimi üzerinde çalışıyorum ve biz kullanıcı @ localhost ve örnek @ kullanıcı (yok. Şey fark), geçerli bir e-posta adresi gibi valide izin verilip karar gerekir. Bu büyük ve intranet adresindeki web hem de kullanım durumları bir numarası vardır bir açık kaynak projesi için olduğunu.

RFC 2822 (Internet İleti Biçimi Standart) Bu izin ancak RFC 2821 (SMTP Standart) başarısız gerektiğini söyledi.

Düşünceler?

6 Cevap

Bu uygulama bağlıdır. Eğer kullanıcıların birkaç email @ localhost olacak ve sakıncası olmadığını düşünüyorsanız. Sonra bunun için gidin.

Insanlar kendileri için karar böylece, yapılandırılabilir bir seçenek haline getirmektedir. Intranet veya kamu internet - - Ben bir durumda çalıştırmak için henüz ettik gibi ben, şahsen, default bunu başarısızlık diye birisi geçerli bir kullanıcı @ localhost türü adresini kullanabilirsiniz yaşadım burada.

Peki, sizin için çalışan DNS varsa dahili her zaman sadece bir DNS araması yapabilir.

Bu SMTP ile başarısız oluyor Ama eğer, o zaman ben bunu içermez emin öneririz.

Ben, form kullanıcı @ localhost e-posta adreslerini gördük, tipik bir posta listesi ve yönetici arşivlerinde bakarken barındırılan ve aynı makineden yayınlanmıştır. Bu yüzden kesinlikle oluşabilir - ve bu benim ayrıştırma rutin kırdı itiraf! Yani şimdi ben e-posta adresleri için biraz daha esnek duyuyorum.

Ayrıntılı olarak biz iki hızlı denetimleri ihtiyaç var gibi bu baktığımızda görünüyor:

<?php 
function valid_email($email) { 
    // First, we check that there's one @ symbol, and that the lengths are right 
    if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) { 
     // Email invalid because wrong number of characters in one section, or wrong number of @ symbols.
     return false; 
    }

    // take a given email address and split it into the username and domain. 
    list($userName, $mailDomain) = split("@", $email); 
    if (checkdnsrr($mailDomain, "MX")) { 
    	// this is a valid email domain! 
    	return true;
    } 
    else { 
    	// this email domain doesn't exist!
    	return false;
    }
} 
?>

(source 1, source 2)

Bunu devre dışı bırakmak istiyorum. Çok az örgütler iç etki alanı kullanmak, ve genellikle yapmak olanlar "acme.localhost" veya "intranet.com" ya da benzeri başka bir şey kullanmak. Onlar çalışması yapmak için kullanabilirsiniz DNS oluyor yapılandırma çeşit var.

Ne olursa olsun, dahili e-posta zaten neredeyse öldü: anlık mesajlaşma, Twitter ve bir şirketin her üyesi için harici e-posta artan kullanılabilirliği ile birlikte SMS gelişiyle birlikte, size bir TLD-daha az etki asla neredeyse tamamen muhtemeldir bir e-posta.

Onlar iç e-posta işlemek için özel bir hostname kurmak için yeterli anlayışlı olduğu gibi bunu gerektirir millet için, her zaman, Regex kendilerini çimdik.