先日不可思議な現象が発生したので切り分け方法と対応策含めご紹介です。
一例ですのでケースによって原因や解決策は異なる場合があります。
現象:「送信に失敗しました」の数秒後に「送信されました」のメッセージが表示される
ホームページの問い合わせフォームからメールを送ると、
「メッセージの送信に失敗しました 後でまたお試し下さい」とのオレンジエラーが。
その数秒後に先ほどのメッセージは消えて
「ありがとうございます。メッセージは送信されました。」
の文言に切り替わりました。
ワードプレスを使用し、Contact Form 7を導入しているホームページでの一幕です。
ユーザー側の立場からするとメールは正しく送れたのか送れていないのか不安になりますが、結論としては正しく管理者のアドレス宛てにフォームからのメールは届いていました。
Contact Form 7には複数のメッセージパターンが用意されている
実はContact Form 7にはケースごとに複数のメッセージパターンが用意されています。
これを見てみると「送信がスパムと見なされた」場合にも送信が失敗しましたのメッセージが同じく表示される場合があることが分かります。
切り分けとしてスパムの場合のメッセージを
「送信内容の確認中です。「送信されました」と表示されない場合は問い合わせが完了していない場合があります。」
と変更して保存し、動作確認をしてみると・・・上記の変更メッセージの後に送信されましたに切り替わることが確認できました。
どうやらスパム判定はされたけども送信されているのが原因のようです。
送信されるかされないかはスパムスコアと閾値などの設定によります。
参考:Contact Form 7の保存とスパム判定にFlamingo
2重表示になってしまった場合、対処療法にはなりますが、ユーザー側の混乱をさけるためにも「送信がスパムと見なされた」場合のメッセージを変更しておくことが望ましいかと思います。
またGoogleのreCAPTCHAを導入している場合、現在は正常でもワードプレスやプラグインのバージョンアップ、Googleの仕様変更により不具合が生じる可能性もありますので定期的にフォームの送信テストを行うことをおススメします。