邮件下载器使用说明
📋 项目简介
这是一个基于Node.js的邮件自动下载和分类工具,能够通过IMAP协议连接到邮箱服务器,自动下载所有邮件并按照联系人进行分类保存。
🗂️ 目录结构
程序运行后会自动创建以下目录结构:
yaml
E:\邮箱下载\pds_server\分类邮件库\
├── 收件箱\ # 所有收到的邮件
│ ├── 来自_联系人A\ # 某个联系人发来的邮件
│ │ ├── 2024-01-01_邮件主题.eml # 邮件原始文件
│ │ ├── 附件\ # 该联系人的所有附件
│ │ │ ├── 1640995200000_文件1.pdf
│ │ │ └── 1640995200000_图片.jpg
│ │ └── _index.json # 该联系人邮件索引
│ ├── 来自_联系人B\
│ └── ...
├── 已发送\ # 所有发送的邮件
│ ├── 发给_联系人A\ # 发送给某个联系人的邮件
│ │ ├── 2024-01-01_回复邮件.eml
│ │ ├── 附件\
│ │ └── _index.json
│ └── ...
└── _下载记录.json # 全局下载记录文件
📁 文件说明
邮件文件 (.eml)
- 格式:标准RFC 822邮件格式
- 命名规则 :
日期_主题.eml- 日期格式:
YYYY-MM-DD - 主题:自动替换特殊字符,最多50个字符
- 日期格式:
- 用途:可用Outlook、Foxmail等邮件客户端打开
附件文件
- 存储位置 :各联系人目录下的
附件文件夹 - 命名规则 :
时间戳_原文件名 - 时间戳:防止重名文件冲突
- 支持格式:所有类型的邮件附件
索引文件 (_index.json)
每个联系人目录下都会生成一个索引文件,包含:
json
{
"emails": [
{
"seqno": 123,
"subject": "邮件主题",
"date": "2024-01-01T12:00:00.000Z",
"emlFile": "2024-01-01_邮件主题.eml",
"infoFile": "邮件信息.json",
"hasAttachments": true
}
]
}
下载记录文件 (_下载记录.json)
全局下载记录,记录所有已下载邮件的UID:
json
{
"downloadedUids": [12345, 12346, 12347],
"inboxTotal": 364,
"sentTotal": 50,
"inboxProcessed": 100,
"sentProcessed": 20,
"lastUpdate": "2024-01-01T12:00:00.000Z"
}
🚀 使用方法
1. 环境准备
bash
# 安装Node.js依赖
npm install
# 确保安装了必要的包
npm install imap mailparser cli-progress
2. 配置邮箱信息
在代码中修改邮箱配置:
javascript
const EMAIL_USER = 'your-email@example.com';
const EMAIL_PASSWORD = 'your-password';
3. 运行程序
bash
cd E:\邮箱下载\pds_server
node routes/email.js
4. 查看下载进度
程序会实时显示:
- 连接状态
- 处理进度
- 下载速度
- 错误信息
⚙️ 功能特性
✨ 主要功能
- 自动分类:按发件人/收件人自动分类
- 断点续传:支持中断后继续下载
- 附件处理:自动保存所有附件
- 进度显示:实时显示下载进度和速度
- 错误处理:自动跳过问题邮件,继续处理
🔧 技术特点
- 批量处理:支持批次下载,提高效率
- 超时保护:30秒超时机制,防止卡死
- 并发控制:合理控制并发数量,避免服务器压力
- 增量更新:只下载新邮件,跳过已下载邮件
📊 性能参数
- 批次大小:5封邮件/批次(可调整)
- 超时时间:30秒/邮件
- 休息间隔:每20封邮件休息1秒
- 记录保存:每10封邮件保存一次记录
🛡️ 安全说明
邮箱安全
- 建议使用应用专用密码而非主密码
- 支持SSL/TLS加密连接
- 不会标记邮件为已读
数据安全
- 所有数据保存在本地
- 不会上传到任何云服务
- 建议定期备份邮件文件
🔧 故障排除
常见问题
-
连接失败
- 检查邮箱密码是否正确
- 确认IMAP服务是否开启
- 检查网络连接
-
下载卡住
- 程序会自动超时跳过
- 可以Ctrl+C中断,下次运行会继续
-
文件保存失败
- 检查磁盘空间
- 确认写入权限
- 检查文件名是否包含特殊字符
日志分析
程序会输出详细日志:
✅ 成功下载:邮件下载成功⏭️ 已跳过:邮件已存在或超时❌ 失败:处理出错,可手动查看
📈 统计信息
程序运行完成后会显示:
- 总邮件数量
- 成功下载数量
- 跳过重复数量
- 处理失败数量
- 总耗时和平均速度
- 联系人邮件分布统计
💡 使用建议
- 首次运行:建议在网络良好时运行
- 大量邮件:分时段运行,避免服务器限制
- 定期备份 :定期备份
分类邮件库文件夹 - 查看邮件:使用邮件客户端打开.eml文件
📞 技术支持
如遇到问题,请检查:
- Node.js版本(建议14+)
- 网络连接状态
- 邮箱IMAP设置
- 磁盘空间和权限
版本 :1.0 更新日期 :2025-12-19 开发者:江城开朗的豌豆