メールフォームプラグインの「Contact Form 7」にIP制限をかける方法

問い合わせプラグインの「Contact Form 7」にIP規制をかける方法の紹介です。

長くサイトをやっていると、いろいろとおかしなメールが来ることもあるかもしれません。それが、2、3度ならまだしも、何度も来ると、参ってしまうこともあるかもしれません。

そういった場合は、Twitterのブロックのような感じで、IPに制限をかけメールを届かないようにすると、一定の効果はあると思います。(相手が固定IPの場合)

ただ、デフォルトの状態のContact Form 7では、IPを制限できる設定にはなっていません。というのも、送られてくるメールにIP情報が載っていないからです。

なので今回は、Contact Form 7から送られてくるメールにIP情報を掲載する方法と、その情報からIP制限をかける方法を紹介します。

photo by Debarshi Ray

スポンサーリンク
レクタングル(大)広告

フォームから送信されるメールにIP情報を含める

Contact Form 7デフォルトの状態では、フォームから送られてくるメールに、IP情報は掲載されません。

IP情報がわからないと、制限をかけられないので、掲載されるように設定します。

デフォルトのメッセージ本文

Contact Form 7のデフォルトの設定で、問い合わせフォームを作成すると、送信用の「メッセージ本文」フォーマットは、以下のようになっています。

Contact Form 7のデフォルトのメッセージ本文

差出人: [your-name] <[your-email]>
題名: [your-subject]

メッセージ本文:
[your-message]


このメールは 寝ログ (https://nelog.jp のお問い合わせフォームから送信されました

IP情報を掲載したメッセージ本文

今回は、上記のフォーマットに、「IP情報」と「ユーザーエージェント(ブラウザ情報)」を付加したものにしたいと思います。

以下がその設定例です。

IP情報を付加したメッセージ本文フォーマット

差出人: [your-name] <[your-email]>
題名: [your-subject]
IP:[_remote_ip]
UA:[_user_agent]

メッセージ本文:
[your-message]


このメールは 寝ログ (https://nelog.jp のお問い合わせフォームから送信されました

太字部分が、付け加えた設定です。「IP情報」と「User Agent情報」が、送られてくるメールに追加されます。

送られてきたメールは、以下のようになります。

Contact Form7から送られてきたメール

IPや、User Agent情報以外にも、Contact Formでは、いろいろなメールタグを使って情報を付加することができます。

Contact Form 7にIP制限をかける方法

上記の設定を行い、おかしなメールが来た時は、毎回IPをチェックします。

毎回、同じIPから届くようなら、そのIPを規制します。

IPを規制する設定をするには、Wordpressに元からあるコメントブラックリスト機能を利用します。

コメントブラックリストは元々、WordPressのコメント用の機能ですが、Contact Form 7 もブラックリストを使って特定の単語や IP アドレスを弾くことができるようになっています。

コメントブラックリスト機能でIP制限

この機能で、IP制限をかけるのは簡単です。

まずは、Wordpress管理画面にログインします。

管理画面のメニューから「設定→ディスカッション」を選択します。

すると、「ディスカッション設定」画面が表示されるので、その中の「コメントブラックリスト」の項目を設定します。

コメントブラックリストの設定は、以下のように行います。

1行に1つIPを記述する

メールに掲載されていた、IPを1行に1つとなるように入力ボックスに記入します。

あとは、「変更を保存」ボタンを押せばOKです。

変更を保存ボタン

まとめ

幸い僕は、まだこの機能を利用してはいません。

先日、おかしなメールが何度か届いたので、メールにIP情報が載るようにして、「次来たら設定しようか、どうしようか」と思っていたのですが、以来来なかったのでそのままです。でもできれば規制とかをしたくないのでよかったです。

とりあえず、規制はさておき、「もし、おかしなメールが届きだしたときのため」に、Contact Form 7の送信メールフォーマットに、IP情報を掲載する設定にだけは、しておいても良いかもしれません。