Generalno je povezivanje na smtp dosta sporo, ono sto ja radim je da proverim da li za domen postoji mx rekord. Znaci ne proverava da li postoji bas taj email, ali dosta dobro radi za filtriranje nepostojecih domena.
Kôd:
public function checkEmail($email) {
if (preg_match('/^[a-zA-Z0-9\._-]+\@(\[?)[a-zA-Z0-9\-\.]+'.'\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/', $email)) {
if (function_exists('checkdnsrr')) {
list (, $domain) = explode('@', $email);
if (checkdnsrr($domain, 'MX') || checkdnsrr($domain, 'A')) {
return true;
}
return false;
}
if (function_exists('getmxrr')) {
$hosts = array();
$mxweights = array();
list (, $domain) = explode('@', $email);
getmxrr($domain, $hosts, $mxweights);
if(!empty($hosts)) {
return true;
}
return false;
}
return true;
}
return false;
}