php の mb_send_mail 関数で一部のメールが送れない。
yahoo メール宛てには送れるのに、独自メールが送れない。
————————————————–
環境
送信元:さくらのVPS WEBサーバーより mb_send_mail を利用
————————————————–
mb_send_mail 関数自体はエラーを吐かず、正常に終了する。
ターミナルでメールエラーを確認
————————————————–
cd /var/log/maillog
————————————————–
エラーっぽい箇所の抜粋
————————————————–
May 29 12:14:51 localhost postfix/smtp[32237]: 70ED82C028C: to=
————————————————–
検索して見つけた対処法
設定してなかった mb_send_mail 第五引数に “-fプロバイダメールアドレス” を指定。
第五引数はエラーがあった場合にメールを送信するメールアドレス。
これで送信できるようになった。
ちなみに別で契約しているもう一つのさくらVPSでは 第五引数がなくても送信できている。サーバーの設定を変えることでも問題解決できそうだ。
参考
https://okwave.jp/qa/q4822148.html
https://b-risk.jp/blog/2013/01/php_mb_send_mail/
追記
ezweb を使っている方から仮登録メールが届かないという連絡が問い合わせフォームからあった。
SPF の設定が何のが原因か?
—————————————-
“v=spf1 +ip4:web公開サーバーのipアドレス +mx ~all”
—————————————-
参考
https://qiita.com/ryounagaoka/items/931081c74b5c7a9b2bff
spfの確認
http://mxtoolbox.com/spf.aspx
追記2
gmail 宛てに送ったら迷惑メールに振り分けられたら
gmail から メールヘッダーを確認。
Received-SPF の部分が softfail になっていたらそれが原因。
ip6 対応のサーバーから送信した場合、SPF の設定に ip6 を追加する必要がある。
参考
https://www.nalabo.net/blog/2013/06/18/148