[PHP-users 34684] Re: メール送信時のレスポンスとキュー蓄積について

聖歩美 hijiri.walk @ gmail.com
2009年 8月 5日 (水) 01:25:03 JST


聖と申します。
マルコさん、こんばんは。

# メールの配送に関しては PHP に限らない話題ですので、
# ほかの適切な ML や掲示板などをお探し頂いた方が良いかもしれません。



> 1.$result = mb_send_mail(第5引数まで指定)
> この、$resultの結果は、配信先のアドレスが正常かエラーかの
> 結果なのか、それとも、送信側が配信出来たかどうかの
> 結果なのか。

mail() や mb_send_mail() からのメールの送信先は、特にカスタマイズしていない限り
まずは localhost 内の MTA に送信することになると思います。
その MTA が「正常にデータを受信した」と返事すれば常に TRUE (あるいは 1 )になります。

この時点ではまだ宛て先への通信自体が始まっていないため、
配信できたかどうかすら取得できません。
エラーメールが最も確実なエラーの確認手段です。


> 2.配信メールが、数日前のものまでキューに蓄積されている原因は、

受信側のメールサーバの仕様に依存します。
今回の場合はメールの受け取り自体を一時的に断られているのが原因で、
その挙動を引き起こしているきっかけは送信者側にある場合がほとんどです。


いくら正当な会員向けメールだとしても
Yahoo! メールアドレスだけが滞留する、というのは耳にしたことがあります。
ですので、同じことがマルコさんのサーバ以外でも起こっていると思われます。

例えば、
http://help.yahoo.co.jp/help/jp/mail/in_trouble/in_trouble-29.html
このページの
> 421 Resources temporarily unavailable. Please try again later.
にあたる時間帯だったのかもしれません。

この前提なら
> 3.Return-pathに返ってくるエラーメールは、
> なぜ翌日などに配信されてくるのか。
は単に Yahoo! 側の問題であると考えることもできますし

> 4.送信時に、エラーレスポンスを即座に確認でき、
> キューに蓄積させない様にする事は可能なのか。
これも相手側のメールサーバに依存すると言い切れると思います。


メルマガを高速に大量に配信するリレーサーバを提供している企業が
いくつかあります。
配信先ごとに細かいチューニングがなされていると聞きますので、
そういった外部サービスの利用も検討してみては如何でしょうか。


聖


PHP-users メーリングリストの案内