# 邮件归档解析

解析邮件归档文件，将邮件路径、头部、正文、收件人和引用邮件整理为结构化结果。

适用于将已有邮件归档整理为数据表，供批量分析。

## 配置来源与解析规则

选择 Catalog 来源，或按模板绑定文件/分片清单。填写原始邮件标记正则表达式、默认字符集和单封邮件大小上限。

| 配置 | 说明 |
| --- | --- |
| 原始邮件标记 | 切分正文中被引用邮件块的正则表达式，按归档中的实际标记填写 |
| 默认字符集 | MIME 文本未声明字符集时使用，例如 `utf-8` |
| 单封邮件最大字节数 | 必须为正数；任何一封超过上限都会使节点失败 |
| 所有者路径位置 | 按 `/` 切分来源名称后，取得所有者的下标，配置默认 0 |
| 邮箱路径起点 | 邮箱路径开始下标，配置默认 1 |
| 邮件名路径位置 | 邮件名下标，配置默认 -1，表示最后一段 |

例如来源名称为 `alice/inbox/message.eml` 时，以上默认位置分别对应所有者 `alice`、邮箱 `inbox` 与邮件名 `message.eml`。先核对真实归档路径，再使用这些位置。

## 选择输出方式

`rows` 返回数据行，适合小样本检查。`catalog_files` 将结果保存为 CSV，适合批量处理；分片总数大于 1 时必须使用文件模式。

文件模式可设置目标位置与输出文件前缀。分片输入通常由[Catalog 文件分片清单](catalog-file-manifest.md)准备。

## 使用输出

| 结果表 | 内容 |
| --- | --- |
| `email` | 路径、所有者及来源信息 |
| `email_info` | 邮件头部和正文 |
| `email_to` | 拆分后的 To 收件人 |
| `email_x_to` | 拆分后的 X-To 收件人 |
| `email_original` | 引用或原始邮件的头部 |

行模式使用各表的 `*_rows` 和 `*_columns`；文件模式使用对应 `*_file_id` 或完整 `output_file_ids`。`count` 表示解析的邮件文件数。

## 示例：先检查归档再入表

流程示意：少量邮件文件 → 邮件归档解析 → 保存结果。

先用 `rows` 模式确认路径字段和引用邮件切分正确，再改用 `catalog_files` 批量生成 CSV。导入生成的 CSV 时按表头规则设置起始行。

## 继续阅读

- [变量与数据传递](../../variables-and-data.md)
- [运行与调试](../../run-debug.md)
