【さくらのVPS】mb_send_mailで一部の宛先に送れない → -f指定とSPF設定

この記事について

環境さくらのVPS + PHP(postfix)
目的一部の宛先にだけメールが送れないのを解消する
結果第五引数に “-f実在するメールアドレス” を指定して送れるようになった。SPFの整備も

つまずきポイント要約

  • 送信元が apache@localhost.localdomain だと 553 で拒否される
  • ezweb 不達は SPF 設定、gmail の迷惑メール行きは SPF への ip6 追加で対処

事象

php の mb_send_mail 関数で一部のメールが送れない。
yahoo メール宛てには送れるのに、独自メールが送れない。

環境
送信元:さくらのVPS WEBサーバーより mb_send_mail を利用

mb_send_mail 関数自体はエラーを吐かず、正常に終了する。

調査

ターミナルでメールエラーを確認

cat /var/log/maillog

エラーっぽい箇所の抜粋

May 29 12:14:51 localhost postfix/smtp[32237]: 70ED82C028C: to=<renraku@example.info>, relay=○○.sakura.ne.jp[49.212.235.97]:25, delay=0.08, delays=0.02/0/0.04/0.02, dsn=5.1.8, status=bounced (host ○○.sakura.ne.jp[49.212.235.97] said: 553 5.1.8 <apache@localhost.localdomain>... Domain of sender address apache@localhost.localdomain does not exist (in reply to MAIL FROM command))

対処:第五引数に -f を指定

検索して見つけた対処法
設定してなかった mb_send_mail 第五引数に “-fプロバイダメールアドレス” を指定。
第五引数はエラーがあった場合にメールを送信するメールアドレス。
これで送信できるようになった。

ちなみに別で契約しているもう一つのさくらVPSでは 第五引数がなくても送信できている。サーバーの設定を変えることでも問題解決できそうだ。

参考
https://okwave.jp/qa/q4822148.html
https://b-risk.jp/blog/2013/01/php_mb_send_mail/

追記1:ezweb に届かない(SPF設定)

追記
ezweb を使っている方から仮登録メールが届かないという連絡が問い合わせフォームからあった。

SPF の設定がないのが原因か?

"v=spf1 +ip4:web公開サーバーのipアドレス +mx ~all"

参考
https://qiita.com/ryounagaoka/items/931081c74b5c7a9b2bff

spfの確認
http://mxtoolbox.com/spf.aspx

追記2:gmail で迷惑メール扱い(SPFにip6を追加)

追記2
gmail 宛てに送ったら迷惑メールに振り分けられたら

gmail から メールヘッダーを確認。

Received-SPF の部分が softfail になっていたらそれが原因。
ip6 対応のサーバーから送信した場合、SPF の設定に ip6 を追加する必要がある。

参考
https://www.nalabo.net/blog/2013/06/18/148

タイトルとURLをコピーしました