連続送信を阻止することが最悪なアイデアである理由

同一の送信元、同一内容のメールが短時間に連続して送られてきて困っている — よくこういった問い合わせを受けます。

これらが何らかのバグやスパムボットにより発生しているものだと思っている人もいるようですが、ほとんどの場合これらは本物の人間の手によるものです。悪意のない普通の人たちが問い合わせフォームの送信を繰り返しているのです。

こういった問い合わせをしてくる人がよく、Contact Form 7 に連続送信を阻止する機能はないのかと訊いてきます。実際、べつにむずかしいことではありません。方法はいくつかありますが、一番手っ取り早いのは最初の送信の後で送信ボタンを無効化することでしょう。

難しくないんだったら最初からそういう機能を有効にしとけばいいじゃないかと思ってるかもしれませんね。でもこのプラグインにそういう機能が付いてないのは意図してそうしているんです。ひどい結果になるのが目に見えていますから。

根本的な問題に対処しよう。

どうして何度も送信しようなんて思うんでしょう。普通は一回で十分だと思うはずじゃないですか。

ここは送信するユーザーの立場に立って理由を考えてみましょう。

送信したつもりなのに正しく送信できたのかはっきりしない場合、不安になって何度も送信を繰り返す人もいるかもしれません。

たとえば送信後の応答メッセージが表示されないとか、送信ボタンをクリックしても無反応だったりしたら、送信に失敗したんだと考えてもう一度クリックしてみようと思ったりするんじゃないでしょうか。

表層の現象を隠そうとするのではなく、どうやったら根本の原因を取り除くことができるかと考えましょう。

もしユーザーに不安を感じさせている理由が応答メッセージや反応の欠如にあるなら、その背後にある根本問題は次のようなものです。

  • 処理の進行を示すローダーアイコンが表示されていない。
  • ページに適用されている CSS スタイルシートが応答メッセージを不可視にしている。
  • バックエンド処理に異常なほど長い時間がかかっている。
  • などなど

もしあなたが根本的な問題を正しく認識してそれを解決するよう取り組むなら、連続送信のような表層レベルのトラブルなどは一緒に解決されるでしょう。

反対に、もしあなたが根本問題を放置してかわりに送信ボタンを無効化するような安直な対処を行ったとしたらどうなるでしょう? ユーザーは不安を感じたままです。それどころか、以前にも増して混乱しているでしょう。だって今やボタンのクリックすらできなくなったんですから。

連続送信のような現象は言うなれば炭鉱のカナリアみたいなものです。もっと深刻で根源的な問題が隠れていることにそれのおかげで気づくことができるのですから。

ですから問題を隠蔽しようとするんじゃなくて、その背後にある根本問題に対処するべきだと言ってるんです。