WordPressで運営されているブログのお問合せフォームを見ると、プラグイン「Contact Form 7」で作られているものばかりです。
Webエンジニアなら想像ができるかもしれませんが、柔軟にカスタマイズできるお問合せフォームの開発って、意外と難しいのですよね。
それを考えると「Contact Form 7」は本当に良くできたプラグインだと感心します。
ところが、そんな便利なContact Form 7で思わぬエラーが発生。メッセージをよく見てみると、
「サイトのドメインに属していないメールアドレスが送信元に設定されています。」
というメッセージのエラーが発生。
今回はこのエラーの原因と対策方法について紹介しようと思います。
設定エラー「サイトのドメインに属していないメールアドレスが送信元に設定されています。」の状況を詳しく探ってみる
設定エラー「サイトのドメインに属していないメールアドレスが送信元に設定されています。」の発生箇所について、もう少し詳しく見てみましょう。
WordPressの管理画面からエラーが発生している箇所まで探ります。
左メニュー「お問い合わせ」→「コンタクトフォーム」にエラーマークが表示されています。
クリックすると、「2件の設定エラーを検出しました」と表示されます。
エラーが発生しているお問い合わせフォームのクリックします。
「メール」タブにエラーマークが表示されています。ここもクリックしましょう。
「メール」の「送信元」が
[your-name] <[your-email]>
の箇所で1つエラーが発生しています。
「メール2」の「送信元」でも同様のエラーが発生しています。
この設定エラーが発生する原因
さて、このエラーですが、「サイトのドメインに属していないメールアドレスが送信元に設定されています。」と記載されているように、メールアドレスとして指定されている文字列が、
「サイトのドメインに属していない」
つまり、メールフォームを設置しているドメインを含んでいないことが原因のようです。
少しわかりにくいので、当サイト「コレカラブログ(https://corekara-web.net/blog)」を使って説明しましょう。
Contact Form 7で設定する「送信元」はお問い合わせフォームからメッセージを送信した訪問者のメールアドレスになるのが自然な考えです。
つまり、例えば送信者の名前が「佐藤さん」で、メールアドレスが「satou@gmail.com」だとすると、送信元のメールアドレスとしては「satou@gmail.com」になるはずです。そうなるように、送信元のメールアドレスとして「[your-email]」を設定していたのでした。
しかし、Contact Form 7のルールでは、
お問合せフォームから送信されたメールの送信元は、お問い合わせフォームを設置しているドメインから送信されるべき
と、考えているようなのです。つまりコレカラブログのお問い合わせフォームからのメールの送信元としては
satou@corekara-web.net
のように、このサイトのドメインをメールアドレスに含まなくてはならないようです。
なぜこのような仕様になっているのでしょうか?
それは、「メールを送信するサーバーのドメイン」と「送信元に指定されているメールアドレスのドメイン」が異なっている場合、「成りすましメール」と見なされてしまう可能性があるからです。
もしそのように扱われてしまうと、迷惑メールとして認識される可能性があり、受信したメールが届かなかったり、「迷惑メールフォルダ」に移動させられたりすることがあるからです。
というわけで、この設定エラーの解決策としては、「送信元」として指定するメールアドレスのドメインが、「Contact Form 7を設置しているWebサイトのドメイン」にすれば良さそうです。
この設定エラーへの対策方法
対策方法としては簡単で、「送信元」のメールアドレスとして、Contact Form 7を設置しているWebサイトのドメインを持つメールアドレスを指定すれば良いのです。
例えば当サイト「コレカラブログ(https://corekara-web.net/blog/)」の場合は、
のようにドメイン「corekara-web.net」を含むメールアドレスにすることで解消します。ここでは「blog@corekara-web.net」とWebサイトのドメインを含む仮のメールアドレスを設定しています。
しかし、この設定ではメールの送信者が先ほど紹介した「佐藤さん(satou@gmail.com)」のメールアドレスではなくなってしまいます。
これを防ぐために、Contact Form 7の「追加ヘッダー」設定を行います。
「追加ヘッダー」の項目に
Reply-To: [your-email]
と設定することで、本来のメール送信者である「佐藤さん」のメールアドレス宛にメールの返信ができるようになります。
これで、
「サイトのドメインに属していないメールアドレスが送信元に設定されています。」
の設定エラーに対する対応は完了です。
まとめ
WordPressの定番お問合せフォームプラグイン「Contact Form 7」でよく発生する設定エラーと解決策について紹介してきました。
実はこのエラーに関しては、ここで紹介したような対策を行わなくても、ちゃんと動作することがあります。
しかしWordPressの管理画面にエラーが表示されたままだと、何となく気持ちが悪いですよね。
もしContact Form 7で同じ設定エラーが発生していたら、まずはこの記事で紹介した対策を試してみてください。