かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

WordPress Contact Form 7 フォームの検証のエラーを解決したい。


WordPress定番のメールフォームプラグインContact Form 7がバージョン4.4になりフォームの検証ができるようになりました。
今まで使っていたフォームを検証した所いろいろエラーが表示されていたのでエラーを解消したメモです。

入力必須でない項目がメールに設定されている

f:id:kikiki-kiki:20160426143626p:plain

この項目には構文エラーがあります。

Eメールアドレスの項目が入力必須でない状態で、メールの送信先・送信元にフォームで入力されるメールアドレスを指定していると場合このエラーが表示されます。

フォームで[your_mail]のタグが入力必須になっていない事が原因ですので、*を付けて入力必須項目にすればOKです。

[email your_mail id:your_mail placeholder "メールアドレス"]
↓
[email* your_mail id:your_mail placeholder "メールアドレス"]

この項目はユーザーの入力内容によっては空白になり得ます。

これも入力必須でない項目が指定されている場合に表示されます。
フォームで[title]のタグが入力必須になっていない事が原因なので、入力必須にすればOKです。

[text title placeholder "タイトル"]
↓
[text* title placeholder "タイトル"]

メールの送信元がサイトのドメインではない

f:id:kikiki-kiki:20160426145215p:plain

このメールアドレスはサイトと同じドメインには属していません。

お問合せなど、フォーム内容を管理者宛にメールを送るような場合、返信の為に送信元を入力してもらうメールアドレスなどに設定していましたが、メールフォームの送信元がドメインと異なっているとスパム扱いになったりもしますので、送信元になるメールアドレスが、サイトのドメインと異なっているとこのエラーが表示されます。

送信元を自分のサイトのドメインのメールアドレスに変更し、
返信先として、追加ヘッダーにReply-toを設定すればOKです。
f:id:kikiki-kiki:20160426150213p:plain

送信元

[your_name] <[your_mail]>
↓
[your_name] <wordpress@mydomain.com>

wordpress@mydomain.comは自分のサイトのメールアドレスを指定

追加ヘッダー

Reply-to: [your_mail]

これで、メールフォームからメールが来た時、返信を押すとReply-toで指定されている、入力されたメールアドレスになっていると思います。(メーラーによっては動作が異なる場合があります。GmailはちゃんとReply-to宛に返信できるようになっていました。)

追加ヘッダーには他にもCCなども設定できる様ですので、会社で使っている場合など担当者のメールアドレスとかをCCしておくと便利に使えそうですね。


[参考]

WordPressで作る 今日からはじめるウェブサイト

WordPressで作る 今日からはじめるウェブサイト