From: YOKOYAMA Takehiro Date: 2002-06-26T01:10:10+09:00 Subject: [ruby-list:35461] Re: メールアドレスを抽出する方法 In message "[ruby-list:35460] Re: メールアドレスを抽出する方法", Takahiro Kambe wrote at 25 Jun, 2002... >ドメイン・パート(@の右側)は、/[A-Z0-9\.-]+/i で十分と思います。_ を入 >れたくなるかもしれませんが。 はい。そのとおりです。 の方は、うるさいことを言えば、"\"でエスケープしたり " " で囲んだりすれば128種類のASCII文字が何でも使えるわけで、 それを考慮すると複雑怪奇な正規表現になってしまうのですね。 まあ、そこまでやらなくても実用上は問題ないだろうということで、 メール・アドレスが構文的に正しいかどうかは確認できたとします。 すると次は、それが本当に受け取り手のあるメール・アドレスかどうかを、 (実際に送信することなく自動で)確認したくなったりするのですが、 どんな方法がいいでしょうね。 私が作ってみたのは、 (1) ドメイン部分について、DNSを引いて確認(MXも含む) (2) SMTPのMAIL FROM、RCPT TOコマンドを送って応答を確認 という方法です。 Net::SMTP.start(mail_server, 25) do |smtp| smtp.command().mailfrom "xxxx@xxxxxx.jp" smtp.command().rcpt mail_addr end VRFYコマンドは、問い合わせても拒否する設定にしている ところが多いので採用していません。 (2) の確認方法は、パスワードとしてメール・アドレスを入力させる anonymous ftpサイトで使っているところがあるので、それを真似たものです。 しかしこれに合格しても、実際にメールを送ってみると delivery error なんて返事がくることもあって、あまりあてになりません。 何かもっとよい方法はないものでしょうか。 -- 横山岳浩 tac@amris.co.jp