「Contact Form 7」プラグインで作成しているお問い合わせフォームに、確認画面をはさむ目的で「Contact Form 7 Multi-Step Forms」を採用。
「不正なメールボックス構文が使用されています。」というエラーが発生。原因や解決方法を調査しました。
WordPressの「Contact Form 7」というプラグインでお問い合わせフォームを作成しました。
このプラグイン単体では送信前に内容を確認することができません。
送信前に確認画面をはさむため、「Contact Form 7 Multi-Step Forms」を採用。
ここでは設定方法は割愛します。
無事に確認画面を実装することがでましたが、「不正なメールボックス構文云々」のエラーを解決することができませんでした。
確認画面からメール設定をすると「不正なメールボックス構文が使用されています。」エラーになる
公式ドキュメントの手順を参照し [確認画面の設定] > [メールタブ] で、送信先を[your-email]というユーザーが入力したメールアドレスに設定しようとしたところ、問題のエラーが発生。
不正なメールボックス構文が使用されています。
エラーの原因調査
エラーメッセージをクリックすると公式ドキュメントの説明に飛びます。
エラーの原因は[your-email]項目が入力必須になっていないことのようです。
// 必須になっている
[email* your-email]
// 必須になっていないためエラーになる
[email your-email]
しかしフォーム入力内容を確認画面で表示した場合のコードは以下のようになります。
multiform属性は表示するだけの項目なので必須にすることができません。
[multiform "your-email"]
「不正なメールボックス構文が使用されています。」エラーは無視してよい
ではどう対応すればよいのでしょうか。
サポートページを確認したところ同一内容の質問を見つけました。
プラグイン作成者による回答は下記の通り。
If this is a warning on the Mail tab you can safely ignore it. Contact Form 7 is simply looking at the Form tab within the same form and not seeing the [cust-email] field. Since forms aren’t directly linked to each other there’s no way for Contact Form 7 to know the field is set in another form.
https://wordpress.org/support/topic/i-get-message-please-fill-out-the-form-on-the-previous-page/
翻訳すると
もしこれがメールタブの警告であれば、無視してかまいません。Contact Form 7 は同じフォーム内のフォームタブを見ていて、[cust-email] フィールドを見ていないだけです。フォーム同士は直接リンクされていないので、Contact Form 7 がこのフィールドが別のフォームに設定されていることを知る術はありません。
ということで仕組み上、確認画面でのエラーを解消することができないようです。
なんとも切れの悪い結果ですが、エラーは無視して運用することになります。
有りモノの組み合わせシステムなのでこの様な不整合には目をつむるしか無いのが現状の様です。
ちなみに、エラー表示があってもメール送信の動作は問題なく行われています。