この記事について
| 環境 | さくらの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
