[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 メーリングリストの案内

AltStyle によって変換されたページ (->オリジナル) /