Agent Skills
返回列表
邮件转 PDF 与 Markdown

邮件转 PDF 与 Markdown

办公效率 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_1aeb512d/eml-to-md。

技能介绍

要解决的问题

Foxmail、QQ 邮箱、Gmail、Outlook 导出的 .eml 文件散落在磁盘上,除了邮件客户端,几乎没有任何工具能顺手处理它们:想归档成可检索的知识库,要么逐封手工复制,要么面对一堆编码混乱的原始 MIME。更麻烦的是,邮件正文里往往带着客户手机号、身份证号、银行卡号,直接转成文档就意味着敏感信息被原样写进新的文件。

@user_1aeb512d/eml-to-md 解决的就是这件事:把文件夹里的 .eml 批量转换成可检索的本地文档,转换过程中按规则自动脱敏。

核心能力与工作流程

  • 批量转换,格式可选:默认输出 PDF(内联图片以 base64 直接嵌入,不存在图片打不开的问题),传入 --format md 时输出 Markdown(图片用相对链接引用)。
  • 输入约定简单:脚本只认标准 .eml,邮件挑选由用户自己在邮箱客户端里完成;输入文件夹由用户指定,没指定就主动询问。
  • 脱敏分级:通过 --mask 控制范围,默认 all(手机号 + 身份证 + 银行卡 + 客户名复查)。手机号打码为 138****5678,身份证为 110101*********7891X,银行卡走 13~19 位 + Luhn 校验后替换为 [CARD]。
  • 客户名走人工复查通道:正则抓取“尊敬的X先生”这类上下文中的疑似姓名,标记 ⚠待审:姓名 写入 review_list.md,不打码;确认为真实客户名后维护进 config/names.txt,下次自动替换为 [NAME]。
  • 编码容错:正文按邮件声明的 charset 解码,兜底链为 gb18030 / gbk / utf-8 / latin-1,避免国内常见的 GBK 邮件乱码。
  • 幂等与附件处理:转换完成后原 .eml 重命名为 .eml.done,重复运行不会二次转换;内联图片按模式分别处理(PDF 内嵌,MD 落盘到 attachments/ 并写相对链接),普通附件存盘并在文档末尾生成附件清单。

适用边界与注意点

  • MD 模式的图片依赖查看器:相对路径在 Obsidian 中通常有效,但在其他预览器或网页中经常解析不到;对图片完整性有强需求的,建议用默认的 PDF 模式。
  • MD 转换的排版短板:html2text 处理富文本 HTML 时容易产生格式混乱,复杂排版邮件的 MD 产物可读性有限。
  • Git Bash / MSYS 路径坑:跨盘时 /c/... 会被误解析,脚本与 Python 路径需用显式 C:/ 盘符;中文目录名经 argv 传给 Python 会乱码,需要先 cd 进目录再用相对路径。
  • PDF 模式依赖系统浏览器:底层调用 Edge 或 Chrome 的无头模式生成 PDF,二者都没有时需要通过 --pdf-engine 指定 exe 路径。
  • 上传 ima 知识库是可选后置步骤:仅当用户明确要求时才执行,且要先探测 ima 连接器是否具备上传能力;若当前只支持检索,如实告知用户手动导入即可。

使用场景

  • 把Foxmail导出的数百封客户邮件批量转成PDF存档,手机号与身份证自动打码
  • 把整个文件夹的.eml转成Markdown放进Obsidian,用于全文检索和图谱浏览
  • 归档前按规则只脱敏手机号和银行卡,保留客户姓名原文不做处理
  • 把QQ邮箱导出的GBK编码邮件批量转成PDF,避免正文乱码

适合人员

  • 律师助理:需要把往来邮件批量存档为PDF,且不能泄露当事人手机号和身份证号
  • 知识库编辑:想把历史邮件转成Markdown纳入Obsidian做全文检索
  • 合规专员:批量处理含客户个人信息的邮件前,需要按类别执行脱敏并留复查清单
  • 档案管理员:把邮箱导出的.eml批量转成独立可打印的PDF归档