Movable Type から送信されるメールがGmailで文字化けしてしまう
Movable Type のコメント投稿や、トラックバック受信時に Gmail 宛にメールが届くように設定したところ、メール本文の半角アルファベットと数値以外、全て「?」で表示される状態になっていました。
メールの受信を契機に管理画面へアクセスするので、メールが届いたことが分かれば文字化けしていても特に問題はありません。しかしこのまま放置しておくのも気になるので、対応することにしました。
文字コードは UTF-8 で統一している
MovableType で書いているサイトの文字コードは UTF-8 (Unicode) です。そして Gmail の文字コードも UTF-8 です。
このままでも問題無さそうなのに、どうして文字化けしてしまうのか?原因はメール送信時の文字コードにありました。
メールの文字コードを設定する
Movable Type で送信メールの文字コードを決めている環境変数は MailEncoding です。
ファイル名 | mt-config.cgi |
---|---|
環境変数名 | MailEncoding |
初期値 | ISO-8859-1 |
設定されていた値 | ISO-2022-JP (これが問題!) |
Gmail で文字化けしないようにするには、送信メールのエンコードを UTF-8 に変更すれば解決します。config ファイル (mt-config.cgi) へ次の一行を設定するだけです。既に何かしら設定されていた場合は、UTF-8 で上書きしてください。
MailEncoding UTF-8
これで無事に Gmail で文字化けしないメールが届くようになりました。
Webメールの場合、利用するソフトによって文字コードが違う場合があります。今回は Gmail に特化した話でしたが、送付先の環境に合わせて環境変数を変更するようにしてください!
以上、Movable Type から送信されるメールの文字化け対応についてでした。