MW WP Form タイトルが文字化け

MW WP Form タイトルが文字化け

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)"

事象

WordPress5.5にバージョンアップ後、MW WP Formで作ったお問い合わせから送信したメールのタイトルが文字化けるようになってしまいました。

Gmailで確認すると、件名が以下のように表示されている

=?ISO-2022-JP?B?GyRCJV4lJCUyJVklQyUvGyhCIBskQiQqTGQkJDlnJG8kOxsoQg==?=

メールのソースを見てみると、以下のような感じ。
文字コードが「ISO-2022-JP」で送信しようとしている

To: [email protected]
Subject: =?ISO-2022-JP?B?GyRCJV4lJCUyJVklQyUvGyhCIBskQiQqTGQkJDlnJG8kOxsoQg==?=
Date: Wed, 16 Sep 2020 20:42:42 +0900
From: "Danroo" <[email protected]>
Reply-To: [email protected]
Message-ID: <[email protected]>
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
正しくは、以下のように表示されてほしい。

ホームページよりお問い合わせがありました

調査

気になった点は以下。

  1. WordPressを5.5にしていたが、プラグインは更新していないことに気づく。
  2. WP Multibyte Patch が更新対象になっている。
    「2.9」が利用可能となっている。
    これは、日本語版 WordPress のマルチバイト文字の取り扱いをいい感じにしてくれるプラグインらしい。もしや、これが悪さをしている?
  3. メールソースは、文字コードが「ISO-2022-JP」で送信しようとしていた。
    そもそも、メールのタイトル情報は、データベースに格納されていて、UTF-8で保存されている。
    本らになら、UTF-8で送信するか、データベースの内容を変換しないと文字化けるはず。

解決方法

WP Multibyte Patch をアップデートしてみた。
すると、解消した。WP Multibyte Patchが悪さしていたみたい。

To: [email protected]
Subject: Danroo お問い合わせ
Date: Wed, 16 Sep 2020 20:57:45 +0900
From: "Danroo" <[email protected]>
Reply-To: [email protected]
Message-ID: <[email protected]>
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にお問い合わせ頂きまして、誠にありがとうございます。

参考リンク

Web技術カテゴリの最新記事