- 締切済み
mb_sendmailのエラーについて質問です。
mb_sendmailのエラーについて質問です。 mb_sendmailでメールを送信する際に、 $re = mb_sendmail(…); という使い方をして、$reでメールの送信の成功と失敗を見分けようとしましたが、$re自体にはPHPの機能としての返り値はあるものの、実際にメールが届いたか届かなかったかの判断はできませんでした。例えばメールアドレスが間違っていたりして実際にメールが届いていない場合などはそのエラーをどういう風に拾えばよいでしょうか? PHPは自体は非常に安定しているので mb_sendmailでエラーが返ってくるようなことは殆どありませんが、メールそれ自体が届かないということは比較的たくさんあります。 そのようなエラー情報を取得するにはどうしたらよいでしょうか? 現在、Ubuntu 9.10で自前の送信メールサーバー(Postfix)とLAMP環境で開発しております。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- mpx
- ベストアンサー率71% (149/209)
>> 例えばメールアドレスが間違っていたりして実際にメールが届いていない場合などは >> そのエラーをどういう風に拾えばよいでしょうか? 既出のようにメールが相手に届いたことを確実にチェックする方法は有りませんが、 メールサーバーが自前なら相手のメールサーバにメッセージが受信されたかどうかまでは 判断する方法が有ります。 MTA(Postfix)のログから相手のMTAの応答を確認するだけです。 ただし、送信直後にチェックしても分かりません。最近Greylisting方式の チェックしているMTAも多いので、cronなどを使って後でまとめて チェックするスクリプトを組んでおく必要があります。
- bm_hiro
- ベストアンサー率51% (200/388)
既に出ている通りですが、届いたかどうかは分かりません。 一番、確実なのはメールを送ってから、電話で「メール届いた?」と確認する事です。 冗談です。 電話で済む用件をメールで送り、メールが届いたかを電話で確認すると言う笑い話です。 真面目な話しをすると、最近の登録フォームとかって 「まず空メールを送ってください」っての多くないですか? んで、その空メール送ってきた送信者にユニークなIDつけたURLを返してあげる。っていう手順。 あれは、メールアドレスの入力間違いとかを防ぐ為と、到達性のあるメールアドレスであることを確認する為にやってるようなもんです。 そんな事をしないとメールの到達性が確認できないもんだから、みんな そうしてるのかなぁ。と思います。
- yambejp
- ベストアンサー率51% (3827/7415)
>メールそれ自体が届かない しょせんメールなので届かなかったことはわかりません。 届いたかどうかわかってしまってはスパムの温床になるため、 最近ではエラーも返してこないのが当たり前なので