- 締切済み
メール送信先が実在するか確かめたい
$send = mail($e_mail, "kenmei", $MSG, $header) ; if ($send) { } else { $ERRMSG = "以下のメールが " . $e_mail . " 宛てに送信できませんでした\n\n" ; mail("自分のアドレス", "can't send", $ERRMSG, $header) ; } というコーディングをしたのですが、実在しないアドレスが$e_mailに入っていても、この処理自体はエラーが 起きないのか、エラーメッセージは出力されません。 宛て先が実在する・しないを確める方法を教えてください。お願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- ribisi
- ベストアンサー率28% (247/864)
回答No.2
#1ですが、補足です。 入力されたデータがメールアドレスとして妥当なものかどうかは、 正規表現を使って、ある程度判断させることは可能です。 これはセキュリティ対策としても、実行したほうがいいと思います。
- ribisi
- ベストアンサー率28% (247/864)
回答No.1
e-mailアドレスの実在の有無を確かめる方法はありません。 それは、e-mailの設計が、送信時に相手を確認するように なっていないからです。 質問のコーディングは、SMTPサーバーへのデータ受け渡しが 失敗したときにエラーとなります。 どうしても何かしたいのであれば、ドメインが実在するか どうかをDNSサーバーに問い合わせる前処理を施すことも 可能だと思いますが、トラフィックや待ち時間をいたずらに 増やすことにもなりかねません。 e-mailとはそういうものだと割り切るしかないのではないでしょうか。
お礼
e_mailアドレスが実在のものか、調べる術はないのですね。分かりました。 色々と教えていただき、ありがとうございました。