阿里邮件下载器使用说明

邮件下载器使用说明

📋 项目简介

这是一个基于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加密连接
  • 不会标记邮件为已读

数据安全

  • 所有数据保存在本地
  • 不会上传到任何云服务
  • 建议定期备份邮件文件

🔧 故障排除

常见问题

  1. 连接失败

    • 检查邮箱密码是否正确
    • 确认IMAP服务是否开启
    • 检查网络连接
  2. 下载卡住

    • 程序会自动超时跳过
    • 可以Ctrl+C中断,下次运行会继续
  3. 文件保存失败

    • 检查磁盘空间
    • 确认写入权限
    • 检查文件名是否包含特殊字符

日志分析

程序会输出详细日志:

  • ✅ 成功下载:邮件下载成功
  • ⏭️ 已跳过:邮件已存在或超时
  • ❌ 失败:处理出错,可手动查看

📈 统计信息

程序运行完成后会显示:

  • 总邮件数量
  • 成功下载数量
  • 跳过重复数量
  • 处理失败数量
  • 总耗时和平均速度
  • 联系人邮件分布统计

💡 使用建议

  1. 首次运行:建议在网络良好时运行
  2. 大量邮件:分时段运行,避免服务器限制
  3. 定期备份 :定期备份分类邮件库文件夹
  4. 查看邮件:使用邮件客户端打开.eml文件

📞 技术支持

如遇到问题,请检查:

  1. Node.js版本(建议14+)
  2. 网络连接状态
  3. 邮箱IMAP设置
  4. 磁盘空间和权限

版本 :1.0 更新日期 :2025-12-19 开发者:江城开朗的豌豆

相关推荐
程序员爱钓鱼5 分钟前
Node.js 编程实战:测试与调试 —— 日志与监控方案
前端·后端·node.js
Mapmost14 分钟前
数字孪生项目效率翻倍!AI技术实测与场景验证实录
前端
小酒星小杜18 分钟前
在AI时代,技术人应该每天都要花两小时来构建一个自身的构建系统-Input篇
前端·程序员·架构
Cache技术分享26 分钟前
290. Java Stream API - 从文本文件的行创建 Stream
前端·后端
陈_杨28 分钟前
前端成功转鸿蒙开发者真实案例,教大家如何开发鸿蒙APP--ArkTS 卡片开发完全指南
前端·harmonyos
小杨同学4934 分钟前
C 语言实战:枚举类型实现数字转星期(输入 1~7 对应星期几)
前端·后端
陈_杨36 分钟前
前端成功转鸿蒙开发者真实案例,教大家如何开发鸿蒙APP--ArkTS 卡片刷新机制
前端·harmonyos
go_caipu43 分钟前
Vben Admin管理系统集成qiankun微服务(二)
前端·javascript
唐叔在学习1 小时前
insertAdjacentHTML踩坑实录:AI没搞定的问题,我给搞定啦
前端·javascript·html
超绝大帅哥1 小时前
Promise为什么比回调函数更好
前端