メール受信不良発生 – cloudflare
![](https://i0.wp.com/pooq.biz/wordpress/wp-content/uploads/2022/12/スクリーンショット_20221227_234957.png?fit=1715%2C834&ssl=1)
cloudflare導入後、一部のメールで受信不良が発生しました。発覚までに時間がかかってしまいました。しかし、対処は比較的簡単でした。以下に対処内容を備忘録として残します。
何故か楽天銀行からのログイン制限一時解除メール受信不良発生
cloudflare導入直後、IMAPとSMTP接続ができない状況でした。しかし、これはメールサーバをキャッシュしないようにすることで対処できました。そして、どうやら一部のメールの取りこぼしがあったようです。これは、楽天銀行にアクセスしたことで発覚しました。
楽天銀行は、ログイン制限解除キーをメールで送ってくる
楽天銀行は、他の多くの銀行とは異なり、OTPトークンを使用していません。しかし、その代わりに、ログインの都度、解除キーを登録したメールアドレス宛に送ってきます。そして、今回発生した現象は、この解除キーを受信できないという現象です。しかし、他のメールは普通に受信出来ています。つまり、楽天銀行は何らかの方法で、メールプロキシの有無を確認しているのでしょう。
メール受信不良の原因を探る
メール受信不良発生の際に、真っ先に確認しなければならないのは、MXレコードです。このMXレコードはcloudflareが自動的に生成します。この時のMXレコードの参照結果はこのようになっていました。
![メール受信不良発生時のMXレコード参照結果です。ちょっと変です。MXがcloudflareのプロキシを向いています。](https://i0.wp.com/pooq.biz/wordpress/wp-content/uploads/2022/12/スクリーンショット_20221227_233812.png?resize=644%2C121&ssl=1)
MXレコードに書かれたメールサーバーは_dc-mx.xxxxxxxxxx.pooq.bizとなっていました。これは、プロキシサーバーがメール受信をする設定ではないかと思います。しかし、大半のメールは受信出来ていますので、通常はこのままで大丈夫です。しかし、何故か楽天銀行のメールだけは受信できません。
障害時のcloudflare側のDNSの設定です。MXはpooq.bizを指しています。ステータスは、”DNS only”となっています。したがって、普通に考えればプロキシにはつながらないはずです。
![MXレコードはちゃんとDNS onlyにしてありました。これなら、メール受信不良は起きないはずです。](https://i0.wp.com/pooq.biz/wordpress/wp-content/uploads/2022/12/スクリーンショット_20221227_234025.png?resize=644%2C29&ssl=1)
しかし、なぜプロキシに接続されてしまったのでしょうか? その答えがこれです。↓ ポイント先のpooq.bizが”Proxied”になっていました。したがって、MXを”DNS only”にしても、プロキシに接続されていたわけです。これで、原因がはっきりしました。早速対処です。
![MXのポイント先が"Proxied"になっていました。その関係で、MXの参照先がcloudflareのキャッシュになってしまったのでしょう。](https://i0.wp.com/pooq.biz/wordpress/wp-content/uploads/2022/12/スクリーンショット_20221227_234250.png?resize=644%2C26&ssl=1)
何となく仕組みが想像ついたので、対策をしてみます
どうやら、楽天銀行はメール送信先にプロキシの存在を確認しているようです。そこで、cloudflareのDNSを書き換えて、対策をしてみることにしました。
DNSのレコードを見たところ、Aレコードにmx.pooq.bizというレコードがありました。この、ポイント先はpooq.bizサーバーのアドレスです。先ずは、mx.pooq.bizを”Proxied”から”DNS only”に変更しました。
![MXレコードのポイント先としてお誂え向きのレコードがありました。このレコードは、大元のDNSには存在していませんので、cloudflareが自動的に生成したものです。](https://i0.wp.com/pooq.biz/wordpress/wp-content/uploads/2022/12/スクリーンショット_20221227_234121.png?resize=644%2C28&ssl=1)
次に、MXレコードの書き換えです。書き換え前はpooq.bizにポイントしていました。これをmx.pooq.bizに変更しました。
![MXレコードを書き換えて、対策は終了です。](https://i0.wp.com/pooq.biz/wordpress/wp-content/uploads/2022/12/スクリーンショット_20221227_233943.png?resize=644%2C29&ssl=1)
ここまでの作業で、MXは本来のメールサーバに置き換わるはずです。では、確認をしてみます。
![これで、MXが正しく変更されたことを確認できました。メール受信不良は解消されました。](https://i0.wp.com/pooq.biz/wordpress/wp-content/uploads/2022/12/スクリーンショット_20221227_233840.png?resize=644%2C86&ssl=1)
意外な盲点でした
今回の障害は、ちょっとした見落としが原因でした。MXレコード自体が”DNS only”になっていました。しかし、そのポイント先が”Proxied”になっていました。このため、メールはプロキシ経由になってしまいました。ただし、一般的なメールであれば、プロキシ経由でも受信できました。しかし、楽天銀行は恐らくプロキシの有無を確認しているのでしょう。そして、プロキシが介在していた場合には、メールを送出しないのだと思います。これは、セキュリティ確保の観点からは正しい動作だと思います。ショボいと思っていた楽天銀行の本人確認は、思っていたより良くできていました。