設定検証についての FAQ

Contact Form 7 4.4 では設定検証機能が導入されました。以下は設定検証についてのよくある質問とその回答です。

この設定検証とかいうやつはゴミだな。なんでこんなもの導入したの?

スパムや偽装メールなど、メールの悪用からユーザーを保護するために、メールサービスの提供者は年々より厳しいルールを適用してきています。また一方では、メール配送に関する問題がますます多く報告されるようになっており、その背景には間違った設定のコンタクトフォームの存在がみられます。

この状況に対処するために設定検証機能は導入されました。それによってユーザーは間違った設定に気づくことができるようになり、メール配送の成功率を最大化できます。

私のコンタクトフォームはずっと正常に機能しています。だから設定を検証する必要はないですよね?

それ本当に動いてます?実際には誤設定があるのに気づいてないだけで、受け取れてるはずだったメッセージがそのせいで受け取れてなかったなんてことないですか?たとえ現時点で問題に気づいてないとしても、一度検証を実行することを強くお勧めします。

検証を実行したら何が起こるんですか?

特に何も起こりません。コンタクトフォームの編集画面内で、間違いのある設定項目に警告のメッセージが表示されるだけです。コンタクトフォームを編集する権限を持ったユーザーだけがこのメッセージを目にします。

設定検証がコンタクトフォームの挙動に影響を与えることはありますか?設定エラーが検出されたコンタクトフォームは機能しなくなるんでしょうか?

いいえ。設定検証がコンタクトフォームの挙動に影響することは一切ありません。検証エラーが検出されたとしても同じです。

設定エラーが検出されたにもかかわらず私のコンタクトフォームは正常に動作してるんですけど、これってバグ?

いいえ。コンタクトフォームが動作するかどうかは環境(ホスティングサーバー、中継するメールサーバー、メーラーのアプリケーション、等々)に大きく依存します。同じコンタクトフォームが異なる環境では動作しなかったとしても別に驚くようなことではありません。あなたの使っているホスティングサービスが明日の朝突然メール配送のポリシーを変更しないという保証がどこかにありますか?

エラーが検出されたということは、どこかに隠れたリスクがあるということです。一回メール送信をテストしてうまくいったからといって安心はできません。ずっと後になって問題として表面化するかもしれないじゃないですか。

どうやったら設定エラーを解消できるんですか?

設定エラーを解消するを参照してください。

メールの送信元項目にサイトのドメインに属するメールアドレスを指定しないといけないのはなぜですか?

例えば、メールの送信元項目に “your-name@yahoo.com” と指定されていたとして、でも実際にはあなたのウェブサーバー(もちろん yahoo.com ではない)から送信されているのですから、中継するメールサーバーがそれを偽装アドレスと認識する可能性は十分大きいわけです。サイトと同じドメインのメールアドレスを使っていればそういう扱いを受けるリスクを小さくできます。

でもフォーム送信者のアドレスを送信元項目に指定しなかったら、フォーム送信者にメールを返信できないじゃないですか。

Reply-To メールヘッダーを指定することで引き続きフォーム送信者に返信できます。フォーム送信者が自分のメールアドレスを入力する項目の名前が “your-email” である場合、次の一行を追加ヘッダー項目に追加します:

Reply-To: [your-email]

これでメールの返信は [your-email] (フォーム送信者のアドレス)に向かうことになります。

私の設定は絶対に間違ってない。なのにエラーが出ます。この検証結果には納得できません。このエラー無視していい?

エラーの意味が理解できていてその(誤)設定がもたらし得るリスクをちゃんと管理できる自信があるんでしたら、無視したらいいんじゃないですか?

設定検証はどういう風に機能するんでしょうか?何をテストしてるの?

この設定検証機能は構文上のチェックのみを行います。メール配送をテストするために実際にメールを送ってみたりはしません。検証のプロセスはローカルの環境で完結するもので、インターネットの別のサービスが介在することはありません。

検証はいつ行われるんですか?

毎回コンタクトフォームを保存するたびに設定検証が実行されます。

設定を検証することの重要性はよく理解してますが、私にも止むに止まれぬ理由があるもので。設定検証機能を無効化することは可能ですか?

可能です。設定検証を無効にするには次の一行を wp-config.php に追加します:

define( 'WPCF7_VALIDATE_CONFIGURATION', false );

または、次の一行をテーマの functions.php に追加しても同じことが実現できます:

add_filter( 'wpcf7_validate_configuration', '__return_false' );

Just another contact form plugin for WordPress. Simple but flexible.