# EML Viewer

> 不用郵件軟體，直接在瀏覽器打開 .eml 原始郵件：完整標頭、寄件者、收件者、日期、兩種內文全部看得到，附件也能直接下載。檔案不會上傳，全部在你的瀏覽器裡完成。

- URL: https://bytescope.dev/zh-Hant/eml-viewer/
- Locale: zh-Hant · Also: [en](https://bytescope.dev/en/eml-viewer.md) · [ja](https://bytescope.dev/ja/eml-viewer.md)
- Runs: .eml 檔案會在你的裝置上直接開啟。標頭、內文與附件皆在頁面內解析，絕不會傳送至任何地方 — 無需上傳、無需帳號，也不需要郵件軟體。
- Requires: Any modern browser (Chrome, Edge, Firefox, Safari), desktop and mobile.
- Updated: 2026-09-08

## What it does

`.eml` 是一封郵件在網路上傳輸時的原樣：先是標頭區塊，接著是 MIME 各部分，全是純位元組。郵件軟體匯出的是它、跟伺服器要原始信件拿到的是它、同事想弄清楚「這封信到底怎麼寄到我這」時轉寄過來的也是它。把它拖進這一頁，郵件會當場被拆開——每一行標頭、寄件者、收件者、日期、純文字和 HTML 兩種內文，每個附件旁邊都有下載按鈕。

檔案不會離開你的電腦。一封存下來的郵件寫明了誰寫信給你、收件人還有誰、信經過哪些伺服器、附了什麼——這種東西不該只為了讀一下就交給陌生的伺服器。所以郵件的解析、附件的還原，全部在你的瀏覽器裡完成；這裡根本沒有上傳端點，就算手滑也傳不出去。

HTML 內文的本質是「寄件者寫的標記」，我們就照這個本質對待它：內文畫在一個沙箱化的 frame 裡，不能執行 script、碰不到這個頁面，預設也完全不能連網——那顆用來通知寄件者「信被打開了」的追蹤像素，在你勾選允許之前永遠載入不了，而且每開一個新檔案，這個勾選就會重設。連結不做成可點擊的樣子，而是把真正的目的地印在文字旁邊，因為在一封你沒預期會收到的郵件裡，最值得細看的就是那個目的地。

標頭區塊完整保留，不會縮減成郵件軟體只給你看的那六個欄位。`Received` 鏈、`Authentication-Results`、`List-Unsubscribe`、`DKIM-Signature`——通通照原文列出，因為會打開原始郵件的人，要看的多半就是這些。檔案哪裡壞了——multipart 沒有收尾、`base64` 內文混進雜字元、瀏覽器解不出的字元集——頁面會另起一行明講，而不是把殘缺的郵件當成完整的給你看。

## Limits

Does not open .pst or .mbox mailboxes and does not send or reply; it displays one .eml message.

## FAQ

### 沒有郵件軟體要怎麼開 .eml 檔？

拖進這一頁就好。原始郵件直接在瀏覽器裡解析，標頭、寄件者、收件者、日期、兩種內文、附件全部看得到——不用郵件軟體、不用匯入、也不用帳號。

### 我的郵件會被上傳到哪裡嗎？

不會。瀏覽器直接從你的磁碟讀檔，所有處理都在頁面裡完成。整個過程沒有伺服器參與，關掉分頁就什麼都不留。

### 寄件者會知道我打開這封郵件嗎？

除非你自己允許，否則不會。遠端圖片——包括一像素的追蹤圖——預設全部封鎖：HTML 內文是在完全禁止網路請求的政策下渲染的。頁面會告訴你找到幾個遠端參照；要載入得自己勾一個明確的核取方塊，而且每開一個新檔案就會重設。

### HTML 內文裡的 script 會執行嗎？

不會。內文渲染在一個 `sandbox` 既不給 script、也不給 same-origin 存取的 iframe 裡，所以郵件裡的 script 跑不起來，郵件內容也讀不到這個頁面。預設先顯示純文字內文。

### 完整的標頭看得到嗎？包括 Received 鏈？

看得到。每一行標頭都照檔案裡的順序原樣列出，重複的也保留——`Received` 的每一跳、`Authentication-Results`、`DKIM-Signature`、`List-Unsubscribe` 通通在。折行會接回一行、encoded-word 會解碼，除此之外一個字都不改。

### 該看寄件者的時間還是 UTC？哪個才對？

都對，而且是同一個瞬間。跟 Outlook 的 `.msg` 不一樣，原始郵件記錄了寄件者時鐘當時的時差，所以頁面可以把寄件者當地時間和 `UTC` 並排顯示，不用猜。兩個都不是拿你電腦的時區換算的。

### 附件可以下載嗎？

可以——每個附件都有自己的下載按鈕，位元組直接取自你手上的 `.eml`。HTML 內文引用的內嵌圖片也會列出來，並標上內文使用的 `cid:`。不會抓任何東西，也不會送出任何東西。

### 為什麼附件存下來的檔名跟原本有點不一樣？

因為檔案裡的名字是寄件者寫的，可能夾帶目錄分隔符、`..` 片段、控制字元，或那種讓 `invoice.exe` 看起來像 `invoice.txt` 的隱形字元。這些都會在檔名進到你的下載資料夾之前被剝掉；只要清理後的名字和原本不同，頁面就會顯示出來。

### 如果檔案壞了，或根本不是 .eml 呢？

頁面會明確說出問題在哪。完全沒有標頭區塊、multipart 一直等不到收尾的 boundary、`base64` 內文混進雜字元、瀏覽器解不出的字元集——每一種都有自己的一行訊息，而已經解析成功的部分照樣顯示，不會跟著一起丟掉。

## Related tools

- [MSG Viewer](https://bytescope.dev/zh-Hant/msg-viewer.md) — 無需 Outlook 即可開啟 Outlook .msg 檔案，包含附件。
- [ICS Viewer](https://bytescope.dev/zh-Hant/ics-viewer.md) — 開啟 .ics 行事曆檔案：行程清單、月檢視與 CSV 匯出。
- [File Type Identifier](https://bytescope.dev/zh-Hant/file-type.md) — 當副檔名錯誤或遺失時，透過位元組特徵辨識檔案格式。
