上传文件
  1. base64hub
  2. Web 与令牌工具
  3. 邮件解码器

EML 查看器与 MIME 邮件解码器

粘贴邮件的原始源码(显示原始邮件 / 查看源代码),或拖入 .eml 文件,无需在邮件客户端中打开,就能查看邮件头、正文和附件。

免费 无需注册,不限次数 本地 不上传任何内容 沙箱 显示 HTML 正文时拦截脚本和远程图片 更新于 2026年10月27日

粘贴原始邮件(查看源代码 / 显示原始邮件),或拖入 .eml 文件。

在你的浏览器中处理。此页面无法将你的数据发送到任何地方: 我们如何确认

如何查看邮件源码

  1. 从邮件客户端获取原始邮件(见下表)并粘贴,或者把 .eml 或 .mht 文件拖到页面上。
  2. 摘要会显示解码后的发件人、收件人、抄送、主题、日期和 Message-ID。全部邮件头 列出每个邮件头的解码值和原始值。
  3. 以纯文本或 HTML 形式阅读 邮件正文。HTML 在沙箱中显示。
  4. 附件 列出每个文件的名称、类型、大小和内容 ID,提供 下载 按钮,图片还有预览。
  5. MIME 结构 显示各部分的嵌套关系,附件似乎丢失时可以借此排查。
邮件客户端在哪里找到源码
Gmail邮件菜单(⋮)→ 显示原始邮件,然后点击“下载原始邮件”
Outlook 网页版邮件菜单(…)→ 查看 → 查看邮件源(View message source)
Thunderbird查看 → 消息源代码(View → Message Source,Ctrl+U),或通过 文件 → 另存为 保存为 .eml
Apple Mail显示 → 邮件 → 原始来源(View → Message → Raw Source)

解码器能处理什么

  • 编码的邮件头:Base64(B)和 quoted-printable(Q)形式的 RFC 2047 编码字,相邻的编码字会合并,支持浏览器认识的任何字符集,也支持原始 UTF-8 邮件头。
  • RFC 2231 形式的附件名,例如 filename*=UTF-8''Rechnung%20M%C3%A4rz.pdf,以及拆分的 filename*0*= 续行。
  • base64 和 quoted-printable 编码的正文,按声明的字符集解码。f=C3=BCr 会变成 für。
  • 嵌套邮件:作为 message/rfc822 附加的转发邮件,会像外层邮件一样逐层解析。
  • 内嵌图片:HTML 中的 cid: 引用会被解析为对应的附件图片。
  • 不完整的输入:单独的 Base64 MIME 部分、整体经过 Base64 编码的邮件,或从 --boundary 开始、没有邮件头的 multipart 正文。

整体经过 Base64 编码的邮件通常以 UmV0dXJuLVBhdGg6(Return-Path:)或 UmVjZWl2ZWQ6(Received:)开头。原样粘贴即可,解码器会先把它解开。

检查可疑邮件

对于钓鱼邮件,邮件头透露的信息比正文更多。在 全部邮件头 中需要比较的内容:

  • From 与 Return-Path 和 Reply-To。回复地址在另一个域名上,是典型的可疑迹象。
  • Authentication-Results,由接收服务器添加:spf=、dkim= 和 dmarc=,结果为 pass 或 fail。
  • Received 行,从下往上读,显示了邮件从发送服务器到你的服务器的路径。
  • 附件类型:来自陌生发件人的 .html、.iso 或 .zip 附件值得怀疑,invoice.pdf.html 这种双扩展名也一样。

由于远程内容被拦截,在这里查看 HTML 正文不会加载跟踪像素,也不会确认你的地址已读。页面的 CSS 同样会被丢弃,所以新闻邮件看起来会比在邮件客户端中朴素。

用 Python 提取附件

from email import policy
from email.parser import BytesParser

with open("message.eml", "rb") as f:
    msg = BytesParser(policy=policy.default).parse(f)

print(msg["Subject"])
for part in msg.iter_attachments():
    name = part.get_filename()
    with open(name, "wb") as out:
        out.write(part.get_payload(decode=True))
    print("saved", name)

policy.default 会解码编码字形式的邮件头,所以 msg["Subject"] 已经是可读的。实际使用时,写入之前要先清理 name,因为它来自发件人。关于附件如何编码,详见 电子邮件中的 Base64;MIME Base64 编码器 可以生成 76 列的格式。

已知限制

  • 不支持 Outlook .msg 文件。winmail.dat(TNEF)部分会作为附件列出,但不会被解开。
  • HTML 正文中的链接点击后没有任何反应,这是有意为之。
  • MIME 部分数量极多的邮件会被截断,并给出提示。

常见问题

没有 Outlook 怎么打开 .eml 文件?

把它拖到这个页面上。邮件头、文本和 HTML 正文以及每个附件都会显示出来,附件可以逐个下载。不超过 64 MB 的文件会直接在浏览器中读取。

邮件主题中的 =?UTF-8?B?…?= 是什么意思?

这是 RFC 2047 编码字:B 表示中间的文本是 Base64,Q 表示一种 quoted-printable 变体。=?UTF-8?B?UmVjaG51bmcgTcOkcno=?= 解码后是 Rechnung März。解码器会把解码后的值和原始值并排显示。

在这里查看可疑邮件安全吗?

HTML 正文在沙箱框架中渲染,没有脚本、表单,链接也不可点击;远程图片和跟踪像素都会被拦截,所以打开它不会向发件人透露任何信息。附件只会列出并提供下载,绝不会被打开。

能打开 Outlook 的 .msg 文件吗?

不能。.msg 是 Outlook 的二进制格式,不是 MIME。请在 Outlook 网页版中打开同一封邮件,选择“查看邮件源”,然后把那段文本粘贴到这里。