関数 validate_email($email){
$exp="^[a-z'0-9]+([._-][a-z'0-9]+)*@([a-z0-9]+([._-] [a-z0-9]+))+$";
if(eregi($exp,$email)){ //まず正規表現を使用してメール形式の有効性を検証します
if(checkdnsrr(array_pop(explode("@",$email)),"MX")){//checkdnsrr を使用してメールのドメイン名部分の有効性を検証します
true を返す;
}その他{
false を返す;
}
}その他{
false を返す;
}
}
注: checkdnsrr 関数は win ホストでは無効です! 以下は、外国のプログラマーによって提案された解決策です。彼は checkdnsrr 関数を置き換える関数も作成しました。
関数 myCheckDNSRR($hostName, $recType=''){if(!emptyempty($hostName)){
if( $recType=='' ) $recType="MX";
exec("nslookup -type=$recType $hostName", $result);
foreach($result as $line){
if(エレギ("^$ホスト名",$line)){
true を返す;
}
}
false を返す;
}
false を返す;
}