[PHP-users 34693] Re: yahooにメールが届かない現象

minto_ys @ yahoo.co.jp minto_ys @ yahoo.co.jp
2009年 8月 9日 (日) 21:26:22 JST


SHIMIZU様

ありがとうございます。マルコです。

私はプログラムを作っていて、他にサーバー管理の方が
いらっしゃって、詳しい事はあまり分からないので
まとハズレな質問や言動があるかもしれません。
その点、ご了承ください。

> 送信できた時のheaderの情報を元に原因を探るより、まずは、PHPスクリプトが
> 送出する、
> 
>   SMTP server (どこのSMTP serverを使ってメール送信しようとしているのか?)
>   MAIL FROM: <from @ from.domain.example.jp>
>   RCPT TO: <to @ to.domain.example.jp>
> 
> を確認されてみてはいかがでしょうか。
> From:やErrors-To:などのheaderって、結局SMTPの"data"が成立した後の
> 話ですから。
> 
> 例として、smtp.mail.yahoo.co.jpでは、少なくともyahooから見た外部
> ネットワークからのSMTP送信において、SMTP Authが成立する・しないに
> 関わらず、MTAがenvelope fromがについて自社のdomainユーザであるかどうか、
> の確認をしているように見えます。
> 

今まで、レンタルサーバーなどを複数借りて、サイトを運営して来た際に
mb_send_mailで何ら、問題なく送信出来ていたので、
詳細まで疑問に思う事が無かったのですが、
メーラーから送る場合の、サーバーの送信経路と、
mb_send_mailから送る場合の、サーバーの送信経路が違う場合が
あると言う事でしょうか?
私はてっきり、同じだと思っていました。


> つまり、メーラで送った時と、mb_sendmailを使った時とで、dataセッショ
> 以前ののSMTP serverと、envelope from及びenvelope toの値を確認すべきです。

これは、サーバー管理者に聞けば分かる事ですか?
どこを見ればいいのか、教えていただけますでしょうか。


> ところで、mb_sendmailって、smtps serverのhostnameとportやsmtp authの有無を
> 指定するオプションが無いようにみえるんですが、、、いったいどこのSMTPサーバに
> 接続しているんでしょうか??

はい、mb_send_mailは、ご指摘の様に、portなどを指定する
オプションはありません。
日本語を扱うメール送信関数として、一番便利に使われているもので
apacheか、サーバーが指定しているポートを使用していると
思われます。
この関数が、いけないのでしょうか?????

この件が解決せずに、色々調べていた所、
mail.php というのを見つけました。
こちらは、smtpsやportなども指定出来るようです。

ここ何日間も、サーバー管理の方と、色々調べて
ありとあらゆる事をサーバーで設定してみたのですが、

mb_send_mailから送る時だけ、domainkeys=fail(bad sig)になります。
しかたがないので、コメントアウトしてもらったのですが
そうすると、
メーラーからも、プログラムからも、
domainkeys=neutral (no sig)
になりました。

この、domainkeys以前の問題で、経由している場所(?)が
メーラーと、mb_send_mailでは、違うからと言う事であれば
SHIMIZU様のおっしゃる通り、
プログラム側から、hostやportを指定しする
mail.php を使う事で解決するかと思うのですが・・・。

他にメール送信する関数で、良いものがあれば
教えていただけると嬉しいです。


長くなってしまいました。

勉強不足なのは、重々承知しています。
申し訳ありませんが、宜しくお願い致します。

--------------------------------------
Power up the Internet with Yahoo! Toolbar.
http://pr.mail.yahoo.co.jp/toolbar/


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