Php için basit SMTP e-posta doğrulama işlevi?

4 Cevap php

Does anybody have a good function for validating email addresses by SMTP in PHP? Also, is it worth it? Will it slow down my server?

-> EDIT: Ben böyle bir şey söz ediyorum:

http://onwebdevelopment.blogspot.com/2008/08/php-email-address-validation-through.html

e-posta adresinin sözdizimi doğrulama tamamlamak içindir ki.

Ama karmaşık görünüyor, ve ben bunu yapmanın basit bir yolu var umuyordum.

4 Cevap

Eğer etki bir posta alışverişi olup olmadığını kontrol etmek istiyorsanız, bu gibi bir şey kullanabilirsiniz:

/*checks if email is well formed and optionally the existence of a MX at that domain*/
function checkEmail($email, $domainCheck = false)
{
	if (preg_match('/^[a-zA-Z0-9\._-]+\@(\[?)[a-zA-Z0-9\-\.]+'.
				   '\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/', $email)) {
		if ($domainCheck && function_exists('checkdnsrr')) {
			list (, $domain)  = explode('@', $email);
			if (checkdnsrr($domain, 'MX') || checkdnsrr($domain, 'A')) {
				return true;
			}
			return false;
		}
		return true;
	}
	return false;
}

Kullanımı:

$validated = checkEmail('foo@gmail.com', true);

İşte aradığınız inanıyorum budur. Bu SMTP sunucusu ile bir doğrulama yok. PHP kodunu gösterir. http://www.webdigi.co.uk/blog/2009/how-to-check-if-an-email-address-exists-without-sending-an-email/.

Here's such a code, drupal modülünden alınan email_verify. Orada Drupal belirli aramaların bir çift vardır, ama genel bir PHP işlevi için bunu temizlemek için çok fazla zaman almamalıdır:

Ayrıca çoğunlukla spam tarafından kullanılır gibi bazı web host, giden port 25'i blok unutmayın. Ev sahibi böyle bir blok pratik ise, doğrulama bu formu kullanmak mümkün olmayacaktır.

Sen benim ücretsiz PHP fonksiyonunu is_email() adreslerini doğrulamak için kullanmak bekliyoruz. Bu mevcut bulunuyor here.

Bu bir adres tam olarak 5321 uyumlu RFC olmasını sağlayacaktır. İsteğe bağlı olarak da etki alanı aslında var olup olmadığını kontrol edebilirsiniz.

Bazı ISS'ler, özellikle Latin alfabesi kullanmayan ülkelerde, kendi kullanıcılarına uyumlu olmayan adreslerini vermek: Bir kullanıcının e-posta adresi gerçekte var olup olmadığını söylemek için bir onaylayıcısına güvenmemelisiniz. Burada e-posta doğrulama hakkında benim deneme daha: http://isemail.info/about.