MW WP Form タイトルが文字化けてしまうようになっていまいました。
調査し、解決までの記録です。
実行環境
- WordPress 5.5
- MW WP Form 4.2.0
- WP Multibyte Patch 2.8.3
- php7.3.14
- CentOS Linux
- 参考: OS確認コマンド
$ cat /etc/os-release NAME="CentOS Linux" VERSION="7 (Core)"
- 参考: OS確認コマンド
事象
WordPress5.5にバージョンアップ後、MW WP Formで作ったお問い合わせから送信したメールのタイトルが文字化けるようになってしまいました。
Gmailで確認すると、件名が以下のように表示されている
=?ISO-2022-JP?B?GyRCJV4lJCUyJVklQyUvGyhCIBskQiQqTGQkJDlnJG8kOxsoQg==?=
メールのソースを見てみると、以下のような感じ。
文字コードが「ISO-2022-JP」で送信しようとしている
To: nonoichi123@gmail.com Subject: =?ISO-2022-JP?B?GyRCJV4lJCUyJVklQyUvGyhCIBskQiQqTGQkJDlnJG8kOxsoQg==?= Date: Wed, 16 Sep 2020 20:42:42 +0900 From: "Danroo" <info@danroo.com> Reply-To: info@danroo.com Message-ID: <8bN75zNl4In6FrDpQdJLGEfw1hqk9riQ2sImYe0FAV0@danroo.com> X-Mailer: PHPMailer 6.1.6 (https://github.com/PHPMailer/PHPMailer) MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP $B%^%$%2%Y%C%/$K$*Ld$9g$o$;D:$-$^$7$F!"@?$K
quot;$j$,$H
amp;$4$6$$^$9!#(B
正しくは、以下のように表示されてほしい。ホームページよりお問い合わせがありました
調査
気になった点は以下。
- WordPressを5.5にしていたが、プラグインは更新していないことに気づく。
- WP Multibyte Patch が更新対象になっている。
「2.9」が利用可能となっている。
これは、日本語版 WordPress のマルチバイト文字の取り扱いをいい感じにしてくれるプラグインらしい。もしや、これが悪さをしている?- メールソースは、文字コードが「ISO-2022-JP」で送信しようとしていた。
そもそも、メールのタイトル情報は、データベースに格納されていて、UTF-8で保存されている。
本らになら、UTF-8で送信するか、データベースの内容を変換しないと文字化けるはず。解決方法
WP Multibyte Patch をアップデートしてみた。
すると、解消した。WP Multibyte Patchが悪さしていたみたい。To: nonoichi123@gmail.com Subject: Danroo お問い合わせ Date: Wed, 16 Sep 2020 20:57:45 +0900 From: "Danroo" <info@danroo.com> Reply-To: info@danroo.com Message-ID: <LQ7GI0dkJnBYS6gdcHT8GTK8lvKEQPsUq2oMrh9w@danroo.com> X-Mailer: PHPMailer 6.1.6 (https://github.com/PHPMailer/PHPMailer) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Danrooにお問い合わせ頂きまして、誠にありがとうございます。
参考リンク
- MW WP Form タイトルの ISO-2022-JP エンコードについて | WordPress.org
https://wordpress.org/support/topic/mw-wp-form-%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB%E3%81%AE-iso-2022-jp-%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/