バージョン選択

フォーラム

メニュー

オンライン状況

96 人のユーザが現在オンラインです。 (84 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 95
tonos もっと...

サイト内検索

バグ報告 > その他 > mail.ymlのcharset_iso_2022_jpをtrueにすると、マイページ>ご注文履歴のメール配信履歴が文字化けする

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kogay
投稿日時: 2017/6/28 17:31
対応状況: −−−
新米
登録日: 2017/6/28
居住地:
投稿: 4
mail.ymlのcharset_iso_2022_jpをtrueにすると、マイページ>ご注文履歴のメール配信履歴が文字化けする
[EC-CUBE] EC-CUBE 3.0.14(3.0.10よりアップデート)
[レンタルサーバ] kagoya
[OS] Linux 2.6.32-696.1.1.el6.x86_64
[PHP] 5.6.30
[データベース] MySQL 5.6.36
[WEBサーバ] Apache/2.4.20

[現象]
EC-CUBEから送信されるメールの文字コードを ISO-2022-JP にするために、mail.yml の charset_iso_2022_jp オプションを「true」にしました。

メールの文字コードは意図通りに ISO-2022-JP となったのですが、

マイページ>ご注文履歴

のメール配信履歴が文字化けしてしまいました。

メール配信履歴のDB保存先である dtb_mail_history.mail_body の中身も文字化けしています。

ちなみに、mail.yml の charset_iso_2022_jp オプションを「false」とすると、メール配信履歴は文字化けしないことは確認済みです。

おそらくなのですが、ISO-2022-JP に変換されたメールボディの文字列をそのまま dtb_mail_history.mail_body に保存しているからだと思います。保存前に UTF-8 に戻せば問題は解決するかと思います。

以上、バグ報告をさせていただきます。

ソースの修正箇所・方法をご教授くださいませ。
また、今後のバグフィックスでご対応いただければ幸いです。
nanasess
投稿日時: 2017/6/30 9:55
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2303
Re: mail.ymlのcharset_iso_2022_jpをtrueにすると、マイページ>ご注文履歴のメール配信履歴が文字化けする
EC-CUBE3.0.11の修正で、多くの環境での文字化けが改善されました。

https://github.com/EC-CUBE/ec-cube/pull/1597
https://github.com/EC-CUBE/ec-cube/issues/1588

最近は UTF-8 が扱えないようなメーラーは皆無ですし、あえて ISO 2022-JP に変更する必要が薄いと考えているのですが、参考までに、 ISO 2022-JP に変更されている理由をご教授いただけませんでしょうか?
kogay
投稿日時: 2017/6/30 11:40
対応状況: −−−
新米
登録日: 2017/6/28
居住地:
投稿: 4
Re: mail.ymlのcharset_iso_2022_jpをtrueにすると、マイページ>ご注文履歴のメール配信履歴が文字化けする
大河内様

ご返答いただき、ありがとうございました。

ISO 2022-JP に変更している理由ですが、弊社は cross-mall というASP型の多店舗管理システムを用いて、EC-CUBE上の在庫と、その他楽天・ヤフーショッピング・Amazon等との在庫連動を行っています。

https://cross-mall.jp/

EC-CUBE側から cross-mall側へ注文情報を取り込む方法として、受注メールを用いておりますが、cross-mall側の仕様として、文字コードが ISO 2022-JP のメールでないと正常に取り込めないという問題があります。

弊社がメール送信時の文字コードとして ISO 2022-JP にこだわっている理由は以上となります。

以上、ご理解のうえご対応いただけると幸いです。

nanasess
投稿日時: 2017/6/30 15:41
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2303
Re: mail.ymlのcharset_iso_2022_jpをtrueにすると、マイページ>ご注文履歴のメール配信履歴が文字化けする
なるほどですね。ありがとうございます。

issues たててもらってるので、次のバージョンとかで修正されると思います
https://github.com/EC-CUBE/ec-cube/issues/2402
468
投稿日時: 2017/7/1 11:44
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: mail.ymlのcharset_iso_2022_jpをtrueにすると、マイページ>ご注文履歴のメール配信履歴が文字化けする
/src/Eccube/Service/ShoppingService.php 1270行目付近で以下の処理でメール配信履歴を記録しています。

$MailHistory = new MailHistory();
$MailHistory
    ->setSubject($message->getSubject())
    ->setMailBody($message->getBody())
    ->setMailTemplate($MailTemplate)
    ->setSendDate(new \DateTime())
    ->setOrder($Order);


ここの$message->getSubject()と$message->getBody()を
mb_convert_encoding($message->getSubject(), 'utf-8', 'jis')
mb_convert_encoding($message->getBody(), 'utf-8', 'jis')のように文字コードを変換する処理を追加すれば文字化けは解消されるのでは無いでしょうか?


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,301名です
総投稿数は109,692件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.