04 Jul

Eposta adresi doğrulama

Genellikle eposta doğrulamak için kullanılan yöntem , bir düzenli ifade ile verile adresi doğrulamaktır :

1
2
3
if(!preg_match('/^[^@]+@[a-zA-Z0-9._-]+\.[a-zA-Z]+$/', $email)) {
  echo  'geçersiz eposta';
}

Ama , bu sadece eposta adresinin belirli standartta yazılmasını sağlar, boyle@biradresyok.com yazdığınızda yukarıdaki kontrolü devredışı bırakır. Siz epostanın doğru olduğunu kabul edersiniz.

Eposta doğrulamanın bir başka yolu daha var . Verilen eposta adresine ait mx kaydının olup olmadığını kontrol etmek :

1
2
3
4
5
6
7
8
9
10
11
12
$email='boyle@biradresyok.com';

$sunucu= substr($email,strpos($email,'@')+1);

$sonuc= array();
getmxrr($sunucu,$sonuc);

if(count($sonuc)>0){
 echo 'adres gecerli';
}else {
 echo 'adres gecersiz';
}

Bu yöntemin bir dezavantajı, mx kaydını kontrol ederken, mx kaydı olmayan bir adres olduğu zaman bir süre bekletmesidir (birkaç saniye). Bunun haricinde mx kaydı kontrol ederek eposta doğrulaması , diğer yöntemlere göre çok daha yüsek doğruluk payı olan sonuçlar verebilir.

5 thoughts on “Eposta adresi doğrulama

  1. Bir fikrim yok, bu fonksiyon php ile birlikte gelmekte ve herhangi bir eklenti aktif etmeniz gerekmemekte.

  2. Aşağıdaki gibi de kontrol yapılabilir. Regex bilmeyenler için daha basit bir yöntem.

    $user_email = ‘hello@shenol.info’;
    if (!filter_var($user_email, FILTER_VALIDATE_EMAIL)) {
    echo “Hatalı e-posta adresi”;
    }

  3. Burda amaç filtrelemek değil, bu yüzden regex veya filter_var kullanmak aynı kapıya çıkıyor.

Comments are closed.