先日、管理しているwordpressのプラグインContactForm7で管理者宛てのメールに、メールタグが入ったメールが送信される事象が発生。
例えばメールタグ「[your-email]」がそのまま記載されたメールが届きました。
色々調べてみて、対策がわかったのでメモ代わりに投稿します。
原因は「Contact Form 7 Multi-Step Forms 無料版」
ContactForm7は入力内容の確認画面の生成を行わずに送信するようになっています。そのため、別のプラグインを導入して確認画面の生成を行っていました。そのプラグインが「Contact Form 7 Multi-Step Forms」です。
無料でも使用できますが、文字数等の制限があるらしく、エラーとなります。
Contact Form 7 Multi-Step Forms - Webhead
A contact form that spans across multiple pages and in the end sends an email with all the info collected
そのため、文字数の多い場合は確認画面に入力情報を引き継げず、送信をクリックすると全項目メールタグが入った空メールが届きます。
Contact Form 7 Multi-Step Formsプラグインは、Cookieを使用して、送信されたデータをあるステップから次のステップに保存するという仕様なのですが、送信内容がブラウザのCookieサイズ制限をオーバーするとデータが欠損するという事らしいです。
対処法
今のところ対策はプロ版の購入しかないようです。
無料版が4kbなのに対し、プロ版ではセッション ストレージを使用するため5MBまでデータの送信が可能。
早速プロ版を購入し、有効にしたところ、改善しました。
無料版とプロ版では、送信可能な文字数に以下のように差があります。
・無料版:4KB(4096バイト)1文字8バイト換算で、512文字
・プロ版:5MB(5242880Byte)1文字8バイト換算で、655360文字
メールタグがそのまま送信されるエラーが起きた際には参考にしてみてください。