• 締切済み

メール送信先が実在するか確かめたい

$send = mail($e_mail, "kenmei", $MSG, $header) ; if ($send) { } else { $ERRMSG = "以下のメールが " . $e_mail . " 宛てに送信できませんでした\n\n" ; mail("自分のアドレス", "can't send", $ERRMSG, $header) ; } というコーディングをしたのですが、実在しないアドレスが$e_mailに入っていても、この処理自体はエラーが 起きないのか、エラーメッセージは出力されません。 宛て先が実在する・しないを確める方法を教えてください。お願いします。

みんなの回答

  • ribisi
  • ベストアンサー率28% (247/864)
回答No.2

#1ですが、補足です。 入力されたデータがメールアドレスとして妥当なものかどうかは、 正規表現を使って、ある程度判断させることは可能です。 これはセキュリティ対策としても、実行したほうがいいと思います。

  • ribisi
  • ベストアンサー率28% (247/864)
回答No.1

e-mailアドレスの実在の有無を確かめる方法はありません。 それは、e-mailの設計が、送信時に相手を確認するように なっていないからです。 質問のコーディングは、SMTPサーバーへのデータ受け渡しが 失敗したときにエラーとなります。 どうしても何かしたいのであれば、ドメインが実在するか どうかをDNSサーバーに問い合わせる前処理を施すことも 可能だと思いますが、トラフィックや待ち時間をいたずらに 増やすことにもなりかねません。 e-mailとはそういうものだと割り切るしかないのではないでしょうか。

arisa5
質問者

お礼

e_mailアドレスが実在のものか、調べる術はないのですね。分かりました。 色々と教えていただき、ありがとうございました。

関連するQ&A

専門家に質問してみよう