― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―



All times are UTC + 9 hours

返信する
ユーザー名:
件名:
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: ON
BBCode を無効にする
フォントサイズ:
フォントカラー
スマイリーを無効にする
URL を自動的にパースしない
ユーザエージェントを表示する
認証コード
KCaptcha by Nikita_Sp
   

トピックのレビュー - 文字コード:UTF-8、エンコード:quoted-printableのメール本文が文字化け
作成者 メッセージ
  記事の件名:  Re: 文字コード:UTF-8、エンコード:quoted-printableのメール本文が文字化け  引用付きで返信する
サブタイプ無しの "text" が指定された場合の挙動について調べてみました。

まず、下記2つの内容の .eml ファイルを用意します。
・bad_utf-8_quoted-printable.eml
コード:
To: hoge@mail.com
From: fuga@mail.com
Subject: bad utf-8 + quoted-printable
Date: Sun, 23 Aug 2020 23:00:00 +0900
MIME-Version: 1.0
Content-Type: text; charset=utf-8
Content-Transfer-Encoding: quoted-printable

=E3=81=93=E3=82=8C=E3=81=AF=E6=97=A5=E6=9C=AC=E8=AA=9E=E3=81=AE=E3=83=A1=
=E3=83=BC=E3=83=AB=E6=9C=AC=E6=96=87=E3=81=A7=E3=81=99
・bad_shift_jis_base64.eml
コード:
To: hoge@mail.com
From: fuga@mail.com
Subject: bad shift_jis + base64
Date: Sun, 23 Aug 2020 23:01:00 +0900
MIME-Version: 1.0
Content-Type: text; charset=shift_jis
Content-Transfer-Encoding: base64

grGC6oLNk/qWe4zqgsyDgYFbg4uWe5W2gsWCtw==

ちなみにどちらもエンコード前の本文は
コード:
これは日本語のメール本文です
です。

これらの .eml ファイルをIMAPアカウントを設定したThunderbirdにインポートし、IMAP同期でサーバーに送ったうえで他のメールソフトでも表示を確認しました。

結果は以下の通りです。
  • Thunderbird: すべてのバージョンにおいて、本文のソースをそのまま表示
  • Windows 10メール: デコードした本文を表示
  • Outlook: デコードした本文を表示
  • Sylpheed: デコードした本文を表示
  • Becky!: ヘッダーのソース表示となり、本文は未知のContent-Typeのため表示されない
  • EdMax: デコードした本文を表示
投稿記事 Posted: 2020年8月23日(日) 23:36
  記事の件名:  Re: 文字コード:UTF-8、エンコード:quoted-printableのメール本文が文字化け  引用付きで返信する
ry_tokucha さんが書きました:
本メールは SendGrid Web API V3 から送信されています

クラウドメール配信サービスの SendGrid を使って送信したメールで、その SendGrid の利用にあたっては Web API v3 を使用、ということでしょうか。
メール送信ということですと V3 Mail Send API でしょうか。
この API を直接叩いていたのだとすれば、送信メールのヘッダー情報はAPI呼び出し側で設定すべきことであり、すなわちサービス利用者側の設定間違いということになるかと思います。

もし、ライブラリを用いていて意図しない設定がされたということであれば、SendGrid のサポートに問い合わせて解決することになるでしょう。

ただ、メール送信側の問題とは別に、text だけのメディアタイプを text/plain として処理できていないのは Thunderbird のバグとして指摘してもいい気がします。

RFC 2046 - Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types
4.1.4. Unrecognized Subtypes より引用
引用:
Unrecognized subtypes of "text" should be treated as subtype "plain" as long as the MIME implementation knows how to handle the charset.
Unrecognized subtypes which also specify an unrecognized charset should be treated as "application/octet- stream".
投稿記事 Posted: 2020年8月20日(木) 22:21
  記事の件名:  Re: 文字コード:UTF-8、エンコード:quoted-printableのメール本文が文字化け  引用付きで返信する
>EarlgreyTea
ご回答ありがとうございます。

本メールは SendGrid Web API V3 から送信されています。
https://sendgrid.kke.co.jp/docs/API_Ref ... index.html

SendGrid側の送信設定に問題がありそうですね。もう少し調べてみます。
https://sendgrid.kke.co.jp/blog/?p=1521
投稿記事 Posted: 2020年8月20日(木) 10:34
  記事の件名:  Re: 文字コード:UTF-8、エンコード:quoted-printableのメール本文が文字化け  引用付きで返信する
ry_tokucha さんが書きました:
Content-Transfer-Encoding: quoted-printable
Content-Type: text; charset=UTF-8

この「Content-Type: text;」というのは正しくありません。
プレーンテキストなら text/plain で、HTMLテキストなら text/html です。
メディアタイプは、必ず「トップレベルタイプ/サブタイプ」の形式になっている必要があります。
このメールはどのメールソフトから送信されたものでしょうか。
いくつか調べてみましたが、同様なヘッダー情報を出力するものはありませんでした。

該当メールを eml ファイルとして保存し、それをテキストエディターで text → text/plain に編集して保存、それを Thunderbird のフォルダーにドロップしてインポートすれば、本文を読めるはずです。
投稿記事 Posted: 2020年8月19日(水) 22:50
  記事の件名:  文字コード:UTF-8、エンコード:quoted-printableのメール本文が文字化け  引用付きで返信する
Windows10 (64bit)
Thunderbird 68.11.1(64bit)

---メッセージソース抜粋---
Content-Transfer-Encoding: quoted-printable
Content-Type: text; charset=UTF-8
----------------------------

件名の通り、
UTf-8, quoted-printableで受診したメールの本文が以下のように表示されます。

----------本文抜粋---------
=E2=80=BB=E6=9C=AC=E3=83=A1=E3=83=BC=E3=83=AB=E3=81=AF=E9=80=81=E4=BF=A1=
=E5=B0=82=E7=94=A8=E3=81=A7=E3=81=99=E3=80=82
----------------------------

quoted-printableでエンコードされた本文が、
デコードされずに表示されているように見受けられます。

どのような設定にすれば、本文を正しく表示できるのでしょうか?

ご教示いただきたいです。
投稿記事 Posted: 2020年8月19日(水) 21:23

All times are UTC + 9 hours


ページ移動:  
Powered by MozillaZine.jp® Forum Software © phpBB Group , Almsamim WYSIWYG
Japanese translation principally by ocean