サブタイプ無しの "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: デコードした本文を表示