EML ビューアー / MIME メールデコーダー

メッセージを貼り付けるか .eml ファイルを開いて「ローカルで検査」を押すと、ヘッダー、本文、隔離された HTML プレビュー、各 MIME パート(保存でデコード済みバイトを取得)がページ内に表示され、どこにも送信されません。

ローカル処理 ·
*.eml

.eml メッセージをアップロードせずに読む方法

メッセージのソースを入力欄に貼り付けるか、.eml ファイルを開いて「ローカルで検査」を押します。処理はすべてタブ内で完結し、どこにも送信されず、処理中に外部へ取りに行くこともありません。結果は、デコードされたヘッダー、テキスト本文、隔離された HTML プレビュー、MIME パートの一覧に分かれるので、テキスト・HTML・添付が混在したメッセージも部分ごとに読めます。

ヘッダーと本文は、それぞれのパートが宣言した文字コードでデコードします。=?windows-1252?Q?Rechnung_=80_offen?= という件名は「Rechnung € offen」と表示され、GB2312 の本文は 后台任务已完成。 と表示され、UTF-8 のアクセントもそのまま残ります。パートの分割は MIME 境界の行だけを目印にするため、引用文の中にある ----b1---- のような行でメッセージが途中で切れることはありません。

  1. メッセージのソースを入力欄に貼り付けるか、.eml ファイルをドロップします。ファイル名がドロップ領域の横に表示され、内容が入力欄に読み込まれます。
  2. 「ローカルで検査」を押します。ヘッダー、パート、添付ファイル、入力サイズが集計され、メタデータには差出人・宛先・件名・日付・メッセージ ID が表示されます(ない項目はダッシュ)。
  3. テキスト本文を読み、コピーでクリップボードへ、ダウンロードで保存します。ファイルを選んだ場合はその名前(win1252.eml なら win1252-body.txt)、貼り付けた場合は message-body.txt になります。
  4. HTML プレビューを確認します。隔離されたフレームで描画され、外部リソースは無効なので、HTML に書かれたトラッキングピクセルが要求されることはありません。
  5. 添付ファイル一覧を開きます。各パートの名前・MIME タイプ・デコード後のサイズ・転送エンコードが並び、保存を押すとデコード済みのバイト列が元のファイル名で保存されます。

デコーダーが読む範囲と、そこで止まる場所

デコーダーが読むもの

文字コードはページ側ではなく、各パートの Content-Type ヘッダーから取ります。windows-1252(「Betrag: €12,50 – fällig am Montag.」)、GB2312/GBK(后台任务已完成。)、UTF-8、そして未知の指定で許容的なバイト読みに切り替わる場合も、読めるテキストとして表示されます。ヘッダーの符号化語(RFC 2047)はデコードし、隣り合う符号化語の間の空白は規格どおりに取り除くので、「Deploy finished」の空白が二重になることもありません。

構造は行単位で追います。multipart のパートは、行がちょうど --境界 のときだけ分割する(行末の空白は許容)ため、引用文に ----b1---- が含まれても本文は失われません。boundary パラメータのない multipart、値のない boundary=""、シングルクォートの境界でも本文は捨てず、テキストとして表示します。message/rfc822 として転送されたメッセージはメッセージとして解析し、本文はテキスト欄に、外側の部分は添付一覧に表示します。12 段を超える入れ子は、消さずにテキストへ平坦化します。

HTML プレビュー

プレビューはメッセージ自身のマークアップと <style> は残しますが、読み込みや実行につながるものは取り除きます。script、iframe、object、embed、link、meta、base、form とフォーム部品は削除し、on* 属性は外し、URL 属性(src、href、poster、background など)は data: URL 以外すべて不活性な断片へ向けます。srcset は埋め込み候補だけを残します。これが「外部リソースは無効」の意味で、25 種類のトラッキング手口(単純なピクセル、srcset、style ブロック内の @import と url()、インラインスタイル)に対して、修正後のプレビューはトラッキング先へ一切リクエストせず、修正前は 4 件発生していました。

これはメールを読むためのフィルターであり、ウイルス対策ではありません。スクリプトを実行せず、外部コンテンツを取得せず、本文中のリンクが安全かどうかまでは判定できません。

読み取りが止まる場所

ビューアーは書かれたとおりにデコードするだけで、S/MIME や PGP の署名検証、暗号化メッセージの復号、メッセージでないファイルの修復は行いません。テキストパートは出現順に連結するため、text/plain が複数あるメッセージは順に表示されます。添付ファイルは開かずバイト列として保存し、JSON 出力はありません。生成されるのはヘッダー、本文、プレビュー、パート一覧です。

最近使ったツール: