基本メールはサーバ側でPostfixを稼働させてGmailに転送する方法を取っています。つまりメールボックスはGmail、メールアドレスは独自ドメインで、という運用。
けれど稀に受け取れないメールがあるんです。まぁ今回で言えばモバイルSuicaなんですがw
このPostfixの逆引きチェックを無効化する方法です。
Postfixの送信ホスト逆引きを無効に
前の「モバイルSuicaからのメールが受け取れない」経緯はこちら。
https://freesim.tokyo/apple-watch/recover-apple-watch-suica/
登録したメールアドレスにモバイルSuica側からメールが送られてくるんですが、これがPostfixではねられちゃうんですね。
maillogはこんな感じ。
postfix/smtpd[1295]: NOQUEUE: reject: RCPT from unknown[157.71.17.123]: 450 4.7.1 Client host rejected: cannot find your hostname, [157.71.17.123]; from=<info@mobilesuica.com> to=<***@******.***> proto=ESMTP helo=<mssprdka7mtr12v.msprd.second.mobilesuica.sys.jeis.co.jp>
普段のモバイルSuicaのDMは届くのに・・・w
要はモバイルSuicaの管理画面は別のメールサーバからメールを飛ばしてるんですね。
以前はモバイルSuicaは「@suicainternetservice.com」というドメインでメールを飛ばしていたのですが、今は「@mobilesuica.com」に変わっています。postfixのaccessに書いてたので変わったのがわかりました。
前回はそうやってドメインを指定して許可するようにしていたと思うのですが、今回は同じように追加しても駄目。多分Suicaのシステムが変わったんだろうと思います。
そしてそのメールサーバが逆引き設定されてないという・・・?
いずれにせよ解決しなきゃいけないので色々調べました。
けどほとんどのサイトが「逆引きできないホストからのメール受信拒否」を書いてるんですね。スパムメール対策として。
けど実際にはモバイルSuicaとかでも逆引きできない事があるので、スパム排除できるより、肝心のメールがREJECTされるリスクの方がデカイ・・・。
Postfixで逆引きチェックしない設定
調べた結果、main.cfに以下設定を追加することで逆引きしないようにできるようです。
smtpd_peername_lookup = no
この設定、デフォルトはyesのようですね。
smtpd_peername_lookup (デフォルト: yes)
リモートSMTPクライアントのホスト名検索を試行し、クライアントIPアドレスにその名前がマッチすることを検証します。クライアント名が検索できなかったり検証できなかった場合、名前の検索が無効になっている場合は、クライアント名は “unknown” と設定されます。名前の検索を無効にすることで、DNS検索による遅延を減らすことができ、内向きの最大配送速度を早くすることができます。この機能はPostfix 2.3以降で使えます。
また、この設定があると駄目かも。僕はコメントアウトしました。
smtpd_sender_restrictions = reject_unknown_sender_domain
けど今回のモバイルSuicaの例でもわかるように、逆引きできないホスト=スパムサーバ、と必ずしも言い切れないケースが増えてきています。
別途輸入代行屋さんのメールサーバも同じでした。その時も「メールこないな・・・」>maillog見るとはねられてる>accessにドメイン追加、みたいなことをやっています。
けど僕のようなメール転送のみの使い方なら、スパムはGmail側で弾けばよくって、Postfixは全部転送してくれた方がいいんですよね・・・。
ということでしばらくこの設定で試してみます。