Contact Form 7で特定のIPアドレスからのメール送信をブロックする
Contact Form 7では特別なメールタグを使うと、IPアドレスや送信日時、ページタイトルなどを取得することができます。それを活用して特定の端末(IPアドレス)からのメール送信を禁止する方法を紹介します。
この記事の内容
Contact Form 7でIPアドレスを取得するタグ
Contact Form 7では次のようなタグを使ってIPアドレスなどを取得できます。
項目 | タグ |
---|---|
IPアドレス | [_remote_ip] |
ページタイトル | [_post_title] |
URL(パーマリンク) | [_post_url] |
送信日 | [_date][_time] |
送信時刻 | [_time] |
詳しくは以下のページも参考にしてください。
これらのタグを活用して特定のIPアドレスからのメール送信をブロックすることができます。以下、手順を紹介します。
IPアドレスをメール本文に含める
ユーザーから送信されたメールに、送信元のIPアドレスを含めるように設定します。それには、上記のタグをContact Form 7の設定画面(「お問い合わせ」‐「コンタクトフォーム」メニューの編集画面)で編集する「メール」タブの本文に入力します。組み立てるタグの例は次のようになります。
IPアドレス:[_remote_ip] ページタイトル:[_post_title] URL:[_post_url] 送信日時:[_date][_time]
ここではIPアドレスのみが必須ですが、参考までに他の項目も含めてみました。
コンタクトフォームの編集画面に入力したイメージは次のようになります。
言うまでもありませんが、これらのタグは入力項目ではないので、問い合わせフォーム自体には表示されませんが、管理者あてに送信されたメール本文には次のような内容(IPアドレス、ページタイトル、URL、送信日時)が追加されます。
特定のIPアドレスからのメール送信をブロック
そのIPアドレスからのメール送信を禁止したい場合は、「設定」‐「ディスカッション」メニューの「コメントブラックリスト」にIPアドレスを入力します。
「変更を保存」ボタンをクリックすると設定完了です。
ブロック対象の端末(IPアドレス)からメールを送信すると、次のようなメッセージが表示されてメールを送信できなくなります。
エラーメッセージを変更するには
エラーメッセージを変更するには、コンタクトフォームの編集画面で「メッセージ」タブを開いて「送信がスパムと見なされた」のメッセージを編集します。
コンパクトなエラーメッセージにすることもできます。
エラーメッセージを非表示にするには
ブロックしたメールについてエラーメッセージを非表示にするには次のようなCSSを子テーマのstyle.cssなどに入力します。
/* ブロックしたメールのメッセージを非表示に */ div.wpcf7-spam-blocked { display: none !important; }
これにより、メール送信がブロックされた場合は何もメッセージが表示されなくなります。