メールアドレスの適正判定方法とは?

このQ&Aのポイント
  • メールアドレスが適正かどうかを判定する方法について教えてください。
  • PHPでメールアドレスの適正判定を行うためのコード変換方法を教えてください。
  • 不正なメールアドレスを判定するための正規表現とエラー処理のコード例を教えてください。
回答を見る
  • ベストアンサー

メールアドレスが適正かどうかの判定方法について

表題の通りですが、OKWeb/CGIのところに同じような質問があります。それを、PHPではどういったコードになるのか、ずばり コード変換を教えて下さい。 参照:honnyaraさんの回答例です。 http://www.okweb.ne.jp/kotaeru.php3?q=370214 -------ここから------- $mail_regex = q{(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\} . q{\[\]\000-\037\x80-\xff])|"[^\\\\\x80-\xff\n\015"]*(?:\\\\[^\x80-\xff][} . q{^\\\\\x80-\xff\n\015"]*)*")(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x} . q{80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|"[^\\\\\x80-} . q{\xff\n\015"]*(?:\\\\[^\x80-\xff][^\\\\\x80-\xff\n\015"]*)*"))*@(?:[^(} . q{\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\0} . q{00-\037\x80-\xff])|\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[^\x80-\xff])*} . q{\])(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,} . q{;:".\\\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[} . q{^\x80-\xff])*\]))*}; # $email が正しいメールアドレス(addr_spec)か判定する if ($email !~ /^$mail_regex$/o) { #エラーの場合の処理 print "不正なメールアドレスです\n"; } -------ここまで------- どうか、よろしくお願いします。

  • PHP
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • sisya
  • ベストアンサー率39% (97/245)
回答No.2

すいません、先ほどの回答の修正です。 if(preg_match("/^$mail_regex$/", $email); ではなく if(!preg_match("/^$mail_regex$/", $email)){ ですね。

waterclock
質問者

お礼

長く気がつかなくてどうもすみませんでした。m(_ _)m まさか、回答があったとは(^^;) 情報ありがとうございます。

その他の回答 (1)

  • sisya
  • ベストアンサー率39% (97/245)
回答No.1

単純にPerlの構文をPHPに変更したいのでしたら、 if($email !~ /^$mail_regex$/o){ の部分を if(preg_match("/^$mail_regex$/", $email); に置き換えるだけで動作すると思います。 oオプションをあまり積極的に試用していないので 微妙に挙動が違うかもしれませんが、 正確か否かのみの判定ならばこれで十分かと思います。 個人的にはそこまで厳密にチェックする事もないので 下記程度のチェックしかしないんですけどね $mail_regex = "/^([\w\-\_\.\/\?\+]+\@[\w\-\_]+(\.[\w\-\_]+)+)$/";

関連するQ&A

  • 回答者のmailアドレスについて

    http://www.okweb.ne.jp/kotaeru.php3?q=70812 の質問の一番下の回答に対するお礼で、 『mailをおくりました』と書かれていますが、 回答者のメールアドレスはどこに記載されているのでしょうか? 少し探してみましたが、見つかりませんでした。 教えてください。

  • 教えてgooでの回答内容がOKwebに掲載されてる

    表題の通りです。どういうことなのでしょうか? http://oshiete1.goo.ne.jp/kotaeru.php3?q=1403547 これは教えてgooです。私が回答してます。私自身が書いたのですからこれは当然です。 ところが、OKwebにてまったく同じ文章が掲載されてます。 http://okweb.jp/kotaeru.php3?q=1403547 私はOKwebで発言したことはありませんし、IDを持った覚えもありません。どうなってるのでしょうか?? 注意:各URLのQ&Aの「内容」は今回の質問とは全く関係ありません。単に私が回答してるというだけです。

  • 「Q&A広場」に退会確認メールが送れない

     コンピューターの知識交換コミュニティ「Q&A広場」の退会手続をしましたが、送られてきた確認メールに返信しても届かないようで、戻ってきてしまいます。  こんなメールが返ってきます。   ↓ FROM:MAILER-DAEMON@mail2.okweb.co.jp 件名:failure notice  コンピューターの知識交換コミュニティ「Q&A広場」のメールアドレスはこちら。   ↓ bicniws@okweb.ne.jp  ちゃんとメールを送れないのは私のPCのせいでしょうか?  ちなみに、Yahoo!とInfoseekの2つのメールアドレスで送ってみましたが、共に返ってきてしまいました。  なお、コンピューターの知識交換コミュニティ「Q&A広場」の会員はOKWebやODN、SymantecのようなOKWebの他の入口からログインできませんので、そちらから退会手続をすることはできません。 http://bicniws.okweb.jp/kotaeru.php3?q=991606

  • メールアドレスを聞いてから・・・・・

    「気になる人がいます。その後」 http://oshiete1.goo.ne.jp/kotaeru.php3?q=926690 のitirousudiです。 メールアドレスを聞いて、レポートの質問という口実で何回かメールしました。 なかなか世間話にはもっていけませんでした。 でも何回かメールしているうちに彼女がどんな人かがほんの少しですがわかりました。 自分が思っているような人ではありませんでした。 ショックでした。 でももしかしたら違うのかもしれない。と思ったりもします。だからもう少し彼女のこと知りたいと思いますが、レポートも提出してしまったのでこれ以上なんの共通点もないのでもうメールする理由がなくなりました。 もうどうでもいいやと投げやりになってしまいますが、そんな自分をみじめに思えます。 こういうことってよくあるんでしょうか?

  • 携帯メールの覗き見

    http://okwave.jp/kotaeru.php3?q=2214480 こちらに書いてあるようなハッキングって実際あるのでしょうか? 携帯のEメールを(実際に携帯を触られたりする以外に)、PC等を使って覗き見されたり、目的の相手だけでなく、第三者に送られてしまうことってあるのでしょうか? また、第三者がなりすましでEメールを送る(メールアドレスが知人と一緒で,アドレス帳に登録されているため送信者の欄にはアドレスに登録されている知人の名前が表示される)ということはできるのですか? もし、できるならば、普通、気づかないので大変な犯罪が起こりそうですが(振り込め詐欺やフィッシング詐欺のような)。

  • フリーメールの判定

    会員制のホームページを作ろうとしています。 登録フォームから入力されたEメールアドレスが、 フリーメールのアドレスかどうかの判定って、 CGIでできますか? 知ってる限りのフリーメールのドメイン名を 列記したテーブルを用意してパターンマッチ、 という手も考えましたが、 それだと知らないフリーメールに対応できません。 いい方法をご存じの方がいらっしゃいましたら 教えてください。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • EXIF情報を持つjpeg画像かどうかの判定方法

    以前、透過GIFの判定方法を質問させていただきました。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1816606 同じくEXIF情報を持つ画像もエラーにしたいと考えていますが、Javaで判定可能でしょうか。 Javaはまだ対応できていないのでは?というのが、周りの回答です。 よろしくお願いします。

  • メールアドレスを交換したら・・・

    みなさんに質問です。 好意を持っている人とメールアドレスを交換したら、自分からメールしますか? 相手から来るのを待ちますか? いつもお世話になっています。 何度も、質問させていただいているのですが 今回もよろしくお願いします。 過去の投稿です。↓ http://okweb.jp/kotaeru.php3?q=1534025 最近、この彼にアドレスを書いた紙をわたしました。 仲良くしてる先輩が、アドレス書いてわたそうよって言ったので 私の分も書いたって感じなんですけど・・・。 彼は仕事の合間に席まで来て、 自分のアドレスを知らせるメールをくれたのですが、その後一度もメールをくれないです。 これって、やっぱり私に全く興味がないってことですよね? ちょっと気になりだしてるだけに、ショックです。 みなさん、ご意見&アドバイスお願いします。

  • PHPMailerを使ってのSTMPメール

    PHPMailerを使ってのSTMPメールの折り返し受信のコードを書いているのですが、付属画像のように「件名なし」の部分にタイトルを入れたいのですが、どうコードを書いたら良いでしょうか? 回答よろしくお願いいたします。 コードは以下になります。 // メール本体    $mail->setFrom('〇〇com', 'maru');  // 送信元メールアドレスと名前    $mail->addAddress($email,$name);  // 送信先メールアドレスと名前              $mail->Body    = "下記の情報を受け取りました。\n内容を確認し、こちらから折り返し、ライン又はメールアドレスにてご案内させて頂きます。\n\n";        $mail->Body    .= "お名前:".$name."\n";     $mail->Body    .= "フリガナ:".$furigana."\n";    $mail->Body    .= "メールアドレス:".$email."\n";    $mail->Body    .= "電話番号:".$tel."\n";

    • ベストアンサー
    • PHP
  • どうしてOKWebは、システムを直そうとしないの?

    同じメールだらけ http://okweb.jp/kotaeru.php3?q=875557 お知らせメールのスパム化 http://okweb.jp/kotaeru.php3?q=875554 上記の質問にもあるように、本日、OKWebから大量の メールが届くという事態になっています。 OKWebの運営に携わっている人の中には、このことを 知っている人もいると思うのですが、どうして早急に 直そうと動かないのでしょうか? 一般の企業なら、このような事態が起きた場合、 休日返上で対処するのが当然だと思うのですが・・・。