大阪はすっきりしない天気が続いてロードバイクに乗れずテンション下がりまくりのともさんですこんにちは。
さて、前回に引き続き今回もEC-CUBE関連です。
ほんと問題児です。
どうにかしてくれ。
自動返信メールが文字化けしました。
はいそれはもう。
どっかからウイルスメールが来たのではと思うほど。
実は本文の文字化けはなかったんです。
しかし、ヘッダの文字化けがすごかったんです。
おまけに、メールタイトルも途中で切れてます。
これはどうにかしないといけません。
対処法
文字化けそのものは文字コードの関連なので、その辺の設定をいじれば大丈夫です。
まずは、以下のファイルを修正します。
app/config/eccube/mail.yml
charset_iso_2022_jp: false
これを
charset_iso_2022_jp: true
に変更します。
次に、以下のファイルを修正します。
src/Eccube/Service/MailService.php
->setReturnPath($this->BaseInfo->getEmail04()) ->setBody($body);
これを
->setReturnPath($this->BaseInfo->getEmail04()) ->setBody($body) ->setCharset('iso-2022-jp') ->setEncoder(new \Swift_Mime_ContentEncoder_PlainContentEncoder('7bit'));
こうします。
MailService.php内に9箇所あります。
すべて置き換えてください。
最後に、以下のファイルを修正します。
/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/HeaderEncoder/Base64HeaderEncoder.php
$newstring = mb_encode_mimeheader($string, $charset, $this->getName(), "\r\n");
これを
$newstring = mb_encode_mimeheader($string, $charset, $this->getName(), "\n");
こうします。
改行コードだけ修正しました。
今回の場合、2つ目までの対応では解決せず、3つ目まで行ってはじめて解決しました。
すべての対応を行った上で、ファイルをFTPにアップロードすれば完了です。
これでヘッダの文字化けは解消されました。
まとめ
EC-CUBE3の情報は、ネット上にはなかなか上がっていないのか、Google先生に聞いても「知りませんくそが」と言われることが多いんですが|д゚)
wordpressの情報はくさるほどあるのに。
うーん、トライ&エラーでやるしかないですねー
がんばります。
ともさんでした。
この記事へのコメントはありません。