ドツボにはまったのでメモ。
環境
サーバ:Google Cloud Platform
使用プラグイン:ContactForm7, WP Mail SMTP, WP Multibyte Patch
メールサービス:SendGrid
事象
コンタクトフォームからメールを送ると、本文だけが文字化けした状態で送られてきました。下のような感じ。
[件名] こんにちは
[本文] $B%F%9%H$G$9 (B
SendGridを怪しんで設定を調べてみたのですが、怪しいところは見つからず、ContactFormの設定上も修正できそうなところが無かったので、思い切ってプラグインのWP Multibyte PatchをOFFにしてみたところ、事象が解消。
しかしながらWP Multibyte Patchは日本語でWordPress運用している場合必須とも言えるプラグインであるため、むやみにOFFはしたくありません。できれば当該事象(メール)に関する設定をピンポイントで弄って事象解消したいところです。で、以下の通り対応したところ事象解消しました。
WP Multibyte Patchは、「WordPress 日本語版用 WP Multibyte Patch 設定ファイル」なるものが用意されており、こちらのファイルを既定の場所に配置し、ファイル記述を行うと、デフォルトの設定値を任意に上書きすることができるそうです。
1.ディレクトリ移動
wordpressがインストールされているフォルダ配下の、以下に移動。
/wp-content/plugins/wp-multibyte-patch
2.wpmp-config-sample-ja.phpをコピー
wpmp-config-sample-ja.php
をコピー。
※バックアップ目的なので、実施しなくても問題なし。
なおGCPのコンソールにSSHでログインすると、権限足らず、sudoでコピーしました。
以降の作業はほぼすべてsudoで作業してます
3.コピーしたファイルをリネーム
wpmp-config-sample-ja.php
をwpmp-config.php
にリネームします。
4.wpmp-config.phpファイルを編集
$wpmp_conf['mail_mode'] = 'JIS';
$wpmp_conf['mail_mode'] = 'UTF-8';
5.ファイルを移動
編集したファイルを/wp-contentに設置。