CMSのお問い合わせ機能やPHPメールフォーム。
設定とかは間違っていないのに「メールが届かない・・・!」というトラブルがあって、切り分けて探ったところ原因がわかったので、備忘録。
もし同じことで行き詰っている人がいたらこのあたりも見てみて。
メールの仕組み
CMSのお問い合わせ機能やPHPメールフォーム。これはだいたい下記のようなながれですよね。
- 【メール送信者】サイトのメールフォームに入力して送信する
- 【サイト管理者】受信設定したメールアドレスにメールが届く。
- 【メール送信者】同時に自動返信機能でメール送信者にもメールが届く。
例としてこのサイト(http://aaa.com/)に設置してあるメールフォームを例に挙げてみます。
1で「xxx@gmail.com」と入力、2の受信アドレスが「xxx@aaa.com」とします。
すると、3の自動返信メールはこうなります。
送信元アドレス(FROM)「xxx@aaa.com」 → 「xxx@gmail.com」
つまり
受信アドレス = 自動返信の送信元アドレス
になります。
ここで受信アドレスを違うドメインのものに変えてみます。例えば「xxx@bbb.com」にすると、自動返信は、
送信元アドレス(FROM)「xxx@bbb.com」 → 「xxx@gmail.com」
となりますね。
するとここで問題発生!
この設定の場合「メールが届かない・・・!」となるときがあるようなのです。ちなみに今回の私のケースはGmailでした。
なぜ届かない!?
サイトが「aaa.com」で、違うドメインのメールアドレス「xxx@bbb.com」を設定すると、なぜ「メールが届かない・・・!」場合があるのか。
それは、メールサーバー側で「なりすまし」と判断される可能性が高まるからなんだそう。だから届かなかったり、迷惑フォルダに振り分けられたり。
まとめ
受信するメールアドレスは最低限サイトのドメインと同じドメインのアドレスにする。
サイトのURL:https://aaa.com/
受信メールアドレス:xxx@aaa.com(同じドメインのメールアドレスとする)
数年前まではこんなトラブルはなかったと思うけど、メールサーバーのセキュリティを強化してきているのだね。いいことです!
コメント
ありがとうございます。