スマイルサーバのver4に移動してから、WordpressのContactForm7で送ったメールが文字化けするという現象が起こりました。

正確には、メールフォームで入れた項目が「????」という文字化けをし、そのほか設定した文字(たとえば、「このメールは●●サイトのお問い合わせから送っています」などのテンプレートの文字)は文字化けしていません。

ContactForm7の文字化けについては、いろいろと記事がありましたが、そのうちの

Contact Form 7で送るメールの文字化けが直らない

php.iniのmbstring.encoding_translation = OnをOffにしたら文字化けしなくなりました。

が参考になりました。

実際に、phpinfoでサーバ情報を見ると、「mbstring.encoding_translation」は「On」でした。

ただ、その設定をするとうまくいくのですが、「On」になっていたのを「Off」にするのは少々抵抗があります。

そのほか見ていて、

mbstring.encoding_translationが原因で文字化け

での設定がよさそうです。

スマイルサーバの「php.ini」は「.user.ini」である必要があるので、そのファイルに

[code]
mbstring.http_input = UTF-8

mbstring.internal_encoding = UTF-8

mbstring.substitute_character = "?"
[/code]

を記入して、文字化けは防げました。