今朝、メ-ル開いたら、迷惑メ-ルが千個くらい来ているwww。その迷惑メ-ル開いたら、最近無料でもらったドメインで作ったホームペ-ジの「お問い合わせメニュ-」に、2分間隔位で連続投稿しているスパムメ-ルだ。以前も時々、現在開設している他のホームペ-ジでも、お問い合わせメニュ-からいたずら書きというか、仮想通貨やらないか?みたいな詐欺メ-ルが来ることはあったが、2分間隔で無限回数的な投稿は初めて遭遇www。ちょつとやりすぎのようで、レンタルサ-バ-側から、外国からの、このお問い合わせメニュ-投稿は出来ないようにします、という連絡が来た。

他のいくつかのホームペ-ジも攻撃されたらまずいと思い、これを防ぐ方法をGEMINIに聞いてみた、プラグインのContactForm7の連続投稿を停止出来るアドイン「Disable Submit Button for Contact Form 7」を導入すれば停止出来るとか。その他、「JavaScriptコードを自分で追加する」方法とかいろいろあるようなのだが、面倒だし、ミスると大変らしいので、やらないwww。
**********************************
参考)Contact Form 7をご利用ですね。ユーザーが「送信」ボタンをカチカチッと連打してしまい、同じ内容のメールが2〜3通届いてしまうのを防ぐための、具体的な設定手順を解説します。
初心者の方にも安全で簡単な「①プラグインを使う方法」と、プラグインをこれ以上増やしたくない方向けの「②JavaScriptを追加する方法」の2つをご紹介します。どちらかやりやすい方を選んでみてください。
方法1:プラグインで実装する(おすすめ・最も安全)
これが一番簡単で、サイトが壊れるリスクもないため推奨される方法です。設定もほぼ不要で、有効化するだけで機能します。
【手順】
- WordPressの管理画面から 「プラグイン」>「新規追加」 を開きます。
- 右上の検索窓に 「Disable Submit Button for Contact Form 7」 と入力して検索します。
- 該当のプラグインが表示されたら 「今すぐインストール」 をクリックし、続けて 「有効化」 をクリックします。
【これだけで完了です】 たったこれだけで、ユーザーが送信ボタンを1回クリックするとボタンがグレーアウト(無効化)され、処理が終わるまで2回目が押せなくなります。
方法2:JavaScriptコードを自分で追加する(中級者向け)
「これ以上プラグインを増やしてサイトを重くしたくない」という場合は、自分で少しコードを追加することで全く同じことができます。
※テーマの functions.php を直接編集するのは画面が真っ白になるリスクがあるため、安全にコードを追加できる「WPCode」という定番プラグインを使った方法で解説します。(すでに導入済みの場合は手順2から進めてください)
手順1:コードを追加するための準備
- 「プラグイン」>「新規追加」から 「WPCode」 (または Insert Headers and Footers)を検索し、インストール・有効化します。
- 左側のメニューに「Code Snippets」という項目が追加されるので、「+ Add Snippet」 をクリックします。
手順2:JavaScriptコードの貼り付け
- 画面の中から 「Add Your Custom Code (New Snippet)」 をクリックします。
- 以下の設定を行います。
- タイトル: 任意の名前(例:CF7二重送信防止)
- Code Type: 右側のドロップダウンから 「JavaScript Snippet」 を選択します。
- 以下のコードをコピーして、黒い入力欄(Code Preview)にそのまま貼り付けます。
JavaScript
document.addEventListener('DOMContentLoaded', function() {
// ページ内のContact Form 7のフォームをすべて取得
var wpcf7Elms = document.querySelectorAll('.wpcf7');
wpcf7Elms.forEach(function(wpcf7Elm) {
var submitButton = wpcf7Elm.querySelector('.wpcf7-submit');
var defaultText = submitButton ? submitButton.value : '送信';
if (submitButton) {
// ① フォーム送信時にボタンを無効化(押せなくする)
wpcf7Elm.addEventListener('submit', function() {
submitButton.disabled = true;
submitButton.value = '送信中...'; // ボタンの文字を変更
});
// ② 入力エラーがあった場合(必須項目漏れなど)はボタンを元に戻す
wpcf7Elm.addEventListener('wpcf7invalid', function() {
submitButton.disabled = false;
submitButton.value = defaultText;
});
// ③ スパム判定された場合もボタンを元に戻す
wpcf7Elm.addEventListener('wpcf7spam', function() {
submitButton.disabled = false;
submitButton.value = defaultText;
});
// ④ 送信に失敗した場合もボタンを元に戻す
wpcf7Elm.addEventListener('wpcf7mailfailed', function() {
submitButton.disabled = false;
submitButton.value = defaultText;
});
}
});
});
手順3:保存して有効化
- 画面を少し下にスクロールし、「Location」が 「Site Wide Footer」 になっていることを確認します(デフォルトでなっているはずです)。
- 画面右上のスイッチを「Inactive」から 「Active(有効)」 に切り替えます。
- その横の 「Save Snippet(保存)」 ボタンをクリックします。
これで設定完了です。
💡 動作確認のお願い
設定が完了したら、実際にご自身のお問い合わせフォームを開いて以下のテストを行ってみてください。
正しく入力して送信ボタンを連打してみる → 1回クリックした瞬間にボタンが押せなくなり、2通目のメールが送信されなければ成功です。
何も入力せずに送信ボタンを押す → 一瞬ボタンが「送信中…」になり押せなくなった後、エラーメッセージ(「必須項目に入力してください」など)が表示されると同時に、ボタンが再び押せる状態に戻れば成功です。

