[PHP-users 24515] Re: メールサーバー確認方法
Ryuzo KOSAKI
kosaki @ fip.fujitsu.com
2005年 2月 14日 (月) 12:40:37 JST
"[PHP-users 24513] Re: メールサーバー確認方法" の記事において
yteraoka @ dti.ad.jpさん は書きました。
>外部から @example.com へメールを送ろうとした場合、MX を調べて
>そこへ送る以外に方法はありませんけど。
MXがなければ、example.com の A に送ってもいいはずです。(rfc2821
にあったような気が)
PHPのMLということで、こんな関数である程度のチェックもできます。
function chkMailAddr($mail){
if($mail<>""){
if (!ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'. '@'
. '([-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'
. '[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+)$',$mail, $regs)) {
return FALSE;
}else {
$domain_name = $regs[1];
if(!getmxrr($domain_name,$mailserver)){
if(!checkdnsrr($domain_name,'A')){
return FALSE;
}
}
}
return TRUE;
}
return FALSE;
}
正規表現のあたりとかカッコよくない(というか不完全な気がする)
のですが、配送はローカルなMTAにおまかせしてるので、まあいい
かな、と思ってます。
--
小先隆三(こさきりゅうぞう) Ryuzo KOSAKI <kosaki @ fip.fujitsu.com>
PGP Finger Print = 77AA B78E 7E40 B51D 4A74 A6E8 8A4C 1E0F
PHP-users メーリングリストの案内