文字コードについて

コメント

8件のコメント

  • 服部健太

    実際に受信したメールのmail_parseを処理する前の生データや、mail_parse後のBody部がわかれば、何か原因がわかるかもしれません。

    たとえば、

    <./testMailChan> ->

    [raw_data = $RESULT] ->

    print(raw_data) ->

    [msgdict = mail_parse(raw_data)] ->

    print(msgdict['Body']) ->

    ...

    としてみた場合、コンソールにはどのような文字列が表示されますでしょうか?

     

    0
    コメントアクション Permalink
  • Saitous

    服部様


    ご回答頂き、ありがとうございます。
    頂きました内容に変更した場合は、以下の通りとなりました。

    ■実行結果
    ---------------------------------------
    $B"(!!%F%9%H%a!<%k$G$9!!"((B
    2020/10/5/ 9:44

    $B%f!<%6L>(B
    $B4k6HL>(B
    test


    メッセージ解析を開始します。
    メッセージに「ユーザ名」が存在しません。
    メッセージに「企業名」が存在しません。
    メッセージに「メールアドレス」が存在しません。
    メッセージに「テスト」が存在しません。
    「test」に対するメッセージ取得に失敗しました。
    []
    ---------------------------------------


    ■メールの内容は以下の通りとなります。
    ---------------------------------------
    ※ テストメールです ※
    2020/10/5/ 9:44

    ユーザ名
    企業名
    test
    ---------------------------------------

    0
    コメントアクション Permalink
  • 服部健太

    ありがとうございます。

    見た感じですと、JISエンコーディングされたメール本文をデコードできずに、文字化けしているようです。(推測ですが)

    Kompiraのmail_parse関数は受信したメールヘッダのエンコード情報(Content-Type, Content-Transfer-Encoding)を見て本文の解析をしております。

    テスト送信されたメールのエンコード情報が正しく設定されているかどうか、ご確認いただけますでしょうか?

     

    0
    コメントアクション Permalink
  • Saitous

    服部様

    ご回答ありがとうございます。
    送信メールのエンコードを確認し、文字コードの変更も行いましたが結果は変わりませんでした。
    環境と実施内容を記載致します。

    ■環境
    ・使用ソフトウェア:Outlook365
    ・使用アカウント:Microsoft Exchange

    ■実施内容
    ①オプション→詳細設定 [文字設定オプション]の欄で以下内容を実施しました。
     その後メールを送信し確認しましたが、変化はありませんでした。
     ・[送信メッセージのエンコード方法を自動選択]のチェックをオフ
     ・[送信メッセージで優先使用するエンコード方法]の確認 →日本語(JIS)  ※初期設定
     ・[mailto:プロトコルでUTF-8をサポートする]のチェックをオフ
     
    ②上記で文字化けしていたため以下の文字コードに変更し、都度メールを送信しました。
     こちらも結果は変わらず文字化けしたままでした。
     ・[送信メッセージで優先使用するエンコード方法]の確認 →日本語(UTF-8)に変更
     ・[送信メッセージで優先使用するエンコード方法]の確認 →日本語(EUC)に変更

    0
    コメントアクション Permalink
  • 服部健太

    実際に文字化けが発生している受信メールの生データをご提示いただけたら、原因がわかるかもしれません。

    メールチャネルから受信してmail_parseする前のデータをprint()した結果、もしくは、メーラで受信した場合のメールメッセージのソースを添付いただくことは可能でしょうか?

    0
    コメントアクション Permalink
  • Saitous

    服部様


    原因究明にご協力頂き、誠にありがとうございます。
    受信メールの生データにつきましては、お客様のセキュリティの観点から提供する事が困難となります。
    大変申し訳ございません。
    現在、切り分けて判明している内容は以下の通りとなります。

    ■切り分け結果
     ①.件名は文字化けせず、メール本文のみ文字化けします。
     ②.お客様環境以外からの検証では、文字化けしません。
      ※当然の事ではありますが、念のための切り分けとなります。

    まずは、メール受信後に本文の文字コードを変換する処理を追加し、
    対応しようと考えております。

    0
    コメントアクション Permalink
  • Saitous

    服部様

    メール本文の文字化けの件ですが、解消できました。
    原因は環境によるものかと思われますが、以下の通り改修しましたところ
    文字化けもなく元の文章を確認することできました。
    何度もお手数をお掛けしまして申し訳ございません。
    今後ともよろしくお願い致します。

    ※教えていただいたログデータの確認を追加したことにより、
     文字コードが確認できたため今回の変換に至りました。ありがとうございました。
     (これまでutf-8からshift-jisに変換と思い込んでおりました。)

    ■改修内容
    [body = msgdict['Body']] -> # 本文の取得
    の後に
    [body = body.encode('shift-jis').decode('iso-2022-jp')] ->
    を追加し、文字コードを変換させました。

    0
    コメントアクション Permalink
  • 服部健太

    ご連絡ありがとうございます。

    とりあえず解決したとのことで、良かったです。

    今後ともどうぞよろしくお願いいたします。

    0
    コメントアクション Permalink

サインインしてコメントを残してください。