- ベストアンサー
mb_send_mail でスパム扱いとなる
大分ネットで調べたのですがうまく見つかりません。 以下のようなプログラムでメール送信すると、 送信先が yahooまたはgmailの場合、迷惑メールフォルダに 振り分けられます。 $to = "xxxxxxxxxxxxxxxxxxx@yahoo.ne.jp"; $subject = "テストメール"; $body ="これはテストです。\nこれはテストです\n"; $header = <<<END From: yyyyyyyyyyyyyy@yahoo.co.jp END; mb_send_mail($to, $subject, $body, $header, '-f yyyyyyyyyyyyyyy@yahoo.co.jp); 補足として 1.From と To は別のアドレスを用いています。 2.説明の便宜上、本文は2行としてますが、実際のテスト プログラムでは本文は50行程度あります。 内容は健全です(迷惑メール扱いはされないはず) 3.環境はレンタルの専用サーバです。 4.送信は1通のみ行っています(何百通も送っているわけではありません)。 また、私が借りている別のレンタルサーバーで、 somebody@mydomain.com にメールを送信すると、somebody@yahoo.co.jp に自動転送されるような設定をしています。 上記プログラムのToをsomebody@mydomain.comに変えた場合、 somebody@yahoo.co.jp に転送され届いたメールは、 迷惑メールフォルダでなく、通常の受信箱に入っていました。 どなたかアドバイスを頂ければ幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
送信元は@mydomain.comからですよね? それをFrom: yyyyyyyyyyyyyy@yahoo.co.jpとしているのですから たんに送信元の偽装と判断されているのでは?
その他の回答 (1)
- mpx
- ベストアンサー率71% (149/209)
yahoo.co.jpのDNSを今見てみらたら、spfレコードが記録されています。(spfについては、 http://e-words.jp/w/Sender20ID.html 参照) つまり、senderが ???@yahoo.co.jp を名乗った場合、送信元が、spfレコードで指定されたIPアドレス以外はスパムと判断します。 yahoo.co.jp. 900 IN TXT "v=spf1 include:spf.yahoo.co.jp ~all" ~allが指定されているので厳密な判定を要求していますね '-f yyyyyyyyyyyyyyy@yahoo.co.jp' とsenderを指定しているようなのでmb_send_mailが利用するSMTPサーバを smtp.mail.yahoo.co.jp に指定していないかぎりこうなるのは仕方ないです。 >> somebody@mydomain.com にメールを送信すると、 >> somebody@yahoo.co.jp に自動転送されるような設定をしています。 この場合は、yahooのメールサーバからはmydomain.comがsenderになります。mydomain.comにはspfが設定されていないのでこのチェックは回避されています。 ちなみに、senderとヘッダー内のFrom欄は別物ですので誤解の無いように!
お礼
ありがとうございます。大変勉強になりました。 知識不足だったため調べなおし、色々とメールアドレスのドメイン を変えて試してみたのですが残念ながらうまくいかず・・ ご丁寧な説明ありがとうございました。
お礼
確かに・・と思い From やら何やら関係がありそうな ヘッダーの類を全て書き換えたのですが、 やはりうまくいきませんでした。。 すいません、ありがとうございます。 解決ではなく回避ですが、パスワード付の外部の メールサーバに接続し、送信するようにしました。