「管理人にだけフォームメールが届かない!?」外部メールサーバを使うと、同一ドメイン宛てにフォームメールが飛ばない問題を紐解く|コーディング、Web開発の外注、代行ならコーディングアライブ

Chat Work

mail

blog

ブログ
  • HOME
  • ブログ
  • 「管理人にだけフォームメールが届かない!?」外部メールサーバを使うと、同一ドメイン宛てにフォームメールが飛ばない問題を紐解く

「管理人にだけフォームメールが届かない!?」外部メールサーバを使うと、同一ドメイン宛てにフォームメールが飛ばない問題を紐解く

Writer

玉木 柚衣

Web Developer

Webサイトのお問い合わせフォームから、管理人宛てにだけ自動メールが飛ばない!?送信元のWebサイトと同じドメインを持つメールアドレスには、フォームからのメールが正しく飛ばないケースがあります。

最近、お問い合わせフォーム周りのメールトラブルのご相談が増えてきました。
でもどうして最近になって増加したのでしょう?

◼️合わせて読みたいメールシステム関連記事

理由は、Webサイトサーバとは別に、メールのみ外部サービスを利用する人が増えてきたためです。

そうなんです。とあるドメインに対してWebサイトのデータサーバとメールサーバを別々に指定している場合、フォームからの送信メールが正しく飛ばない場合があるんです。

 

具体例

具体的な例を挙げてみましょう。

株式会社ホゲホゲという会社があったとします。
Webサイトはhttps://hogehoge.comで、メールアドレスは[email protected]を利用しています。
Webサイトhogehoge.comは「さくらインターネット」のレンタルサーバ上に存在しています。(以下、さくらサーバと呼称)
ですがメールアドレス[email protected]はGoogleWorkspace(つまりGoogleサーバ)を利用しているとしましょう。
GoogleWorkspaceの利用ルールに則って、hogehoge.comというドメインのDNSには以下のように

  • Webサイトはさくらサーバを利用(Aレコード)
  • メールはgoogleサーバを利用(MXレコード)

という指示を正しく設定してあるものとします。
※SPFレコードについては今回の話の主旨とズレるので割愛します

Webサイトも正しく表示されるし、メーラーから送ったメールも正しく使用できている。

何の問題もない。

……と、思うじゃないですか?

とても危険な例外があります。

それは

「Webサイトと同じドメインのメールアドレスに対してフォームからメールを送信した時」

です。
(送信ロジックとしてSMTP送信を利用している場合は問題ありません。PHPのsendmailなどから送られたメールがトラブルの対象となります。)

つまり、Webサイトhogehoge.comのコンタクトフォームに投稿があった際に、管理人への通知として[email protected]といった、Webサイトと同じドメインを持つメールアドレスに自動メールを送信しようとすると失敗する恐れがある。ということです。

 

なぜ問題が起こる?

メールというものは通常、送信されたタイミングで送り先のメールアドレスのドメイン情報を見に行きます。
ドメイン情報はDNSサーバにかかれていて、「このドメインはこのサーバと紐付いているから、ここにデータを送ってね」といった指示が公開されています。
この流れで言えば、例に挙げた[email protected]宛てに送信されたメールは、hogehoge.comのDNSサーバに書かれた「googleサーバに届けてね」という情報を元にgoogleサーバに届けられます。

ところが、このメールの送り主がWebサイトhogehoge.com自身だった場合に限り、恐ろしい誤解が起こります。

「あ、このドメインって私のことだ。だったらわざわざDNSを確認しなくてもいいかな。自分の中(さくらサーバ)のメールサーバに届けよっと♪」

このように誤った送信先にメールを送信してしまうケースが発生するんです。

こうなってしまうと、本来googleサーバに届けなくてはいけないメールが、さくらサーバに届いてしまいます。
[email protected]の利用者はgoogleサーバを利用しているので、当然これではメールが確認できません。

結果、

「フォームに投稿すると、管理人宛てのメールだけ届かない」

といった悲劇が起こります。

 

解決方法

このように「自分(Webサーバ)と同じドメインを持つメールアドレスに、自らメールを送信する」という機会に発生した時、きちんとDNSを確認しにいくかどうかは利用するサーバによって異なります。

何も設定しなくてもちゃんとDNSを確認しに行ってくれるサーバもあれば、ちゃんと設定しないと間違ってメールを送信しちゃうサーバもあります。
(中には、設定すらさせてくれないサーバもあります…)

先程例に挙げた「さくらインターネット」のレンタルサーバは「設定を変更しないと間違えちゃう」タイプです。

さくらの場合は以下の手順で変更可能です

コントロールパネルにログイン

メニューから「ドメイン/SSL」へ移動

対象のドメインの「設定」をクリック

「メールの利用範囲」を「利用しない」に変更

保存

この設定をすることで「自分自身はメールサーバとしては利用しないんだ」という自覚がさくらサーバに生まれます。

すると、自分と同じドメインのメールアドレスにメールを送信する際も、ちゃんとDNSで書かれた指示を確認しにいってくれるようになります。

 

まとめ

今回はさくらサーバを例に挙げて説明しましたが、これらの設定方法はサーバによって異なります。
状況に応じて確認しながら対処していく必要があるかと思いますので、ご自身が使われているサーバを確認して調査してみてください。
もちろんご連絡いただければ弊社でもサポートいたしますので、お気軽にご相談ください。

わかりやすく説明するため、実際の内部ロジックとは多少異なった表現を用いておりますことをご理解ください。

◼️合わせて読みたいメールシステム関連記事