# 邮件样例附件清单 路径约定:`docx/邮件/{邮件N}/` **平铺**业务附件;`*邮箱.pdf` 为 QQ 截图。 ## 目录 → 实际附件 → 期望位置 | 邮件 | 实际(修正前) | 期望位置 | 差异 | 修正 | |---|---|---|---|---| | **邮件1** | `QQ邮箱.pdf` | 根目录截图;无业务附件 | 一致 | ingest:`none` | | **邮件2** | `2邮箱.pdf` + `柜号:MATU2745683卡派资料.xlsx` | 根目录 | 一致 | ingest:`packing_xlsx` | | **邮件3** | `3邮箱.pdf`;卡转海 PDF 在子目录 `WHSU5574991 卡转海/` | 业务 PDF **平铺到 `邮件3/` 根** | 嵌套子目录;ingest 原先不挂附件 | 平铺 + ingest:`business` | | **邮件4** | `4邮箱.pdf`;换标 xlsx/PDF 在子目录 `原箱号YT…换标操作指令/` | 业务文件 **平铺到 `邮件4/` 根** | 嵌套子目录;ingest 原先不挂附件 | 平铺 + ingest:`label_instruction` | | **模板** | 预报/DO 共享模板 | `docx/邮件/模板/`(不属于某一封邮件) | 正确 | `ingest-forecast-ui.ts` 单独用 | ## 修正后期望树 ``` docx/邮件/ 邮件1/ QQ邮箱.pdf 邮件2/ 2邮箱.pdf 柜号:MATU2745683卡派资料.xlsx 邮件3/ 3邮箱.pdf WL103276-SBD1(1).pdf WL103944-WL103940.pdf WL98967-VGT2(1).pdf WL99583-LAX9.pdf 邮件4/ 4邮箱.pdf FBA19HW52S0L-76CTN-HIA1-覆盖贴1箱贴2张.pdf X003UHDF7B-304PCS-覆盖贴1箱贴1张.pdf YT2604021091=76件换标走HIA1卡派出库操作指令.xlsx 模板/ 数据模版.xlsx 数据模版-新辰泽-WHSU8127240.xlsx … ``` ## ingest 策略(`pnpm sample:mails`) | key | attachPolicy | 入库附件 | |---|---|---| | mail1 | `none` | 无 | | mail2 | `packing_xlsx` | MATU 卡派 xlsx | | mail3 | `business` | 全部非截图业务文件(卡转海 PDF);解析仍主题短路 | | mail4 | `label_instruction` | 换标 xlsx + 指令 PDF;pipeline 先试卡派再试贴标指令单 | ## 维护命令 ```bash pnpm exec tsx scripts/flatten-mail-attachments.ts # 子目录 → 邮件根(幂等) pnpm exec tsx scripts/scan-mail-samples.ts # 扫描树 pnpm sample:mails # 按策略入库 ```