一个精美的 macOS 邮件批量发送工具,支持联系人采集和批量邮件发送。
- 🔍 自动从 163 邮箱收件箱采集发件人邮箱
- 🧹 智能去重,保持联系人唯一性
- 💾 支持导出为 TXT 或 CSV 格式
- ⏸️ 可随时停止采集任务
- 📨 批量发送个性化邮件
- 📎 支持添加图片/PDF 附件
- ⚡️ 批次发送机制,避免被封禁
- 📊 实时进度显示和日志反馈
- 💾 自动保存配置,下次使用更便捷
- 🍎 原生 macOS 风格界面
- 🌈 精美的深色主题日志窗口
- 📱 直观的选项卡式布局
- ⚡️ 多线程处理,界面永不卡顿
Eason/
├── email_assistant_gui.py # 主程序
├── scripts/ # 所有脚本
├── docs/ # 所有文档
├── config/ # 配置文件
└── emailcode/ # 原始命令行版本
💡 详细结构说明见 PROJECT_LAYOUT.md
- macOS 10.14 或更高版本
- Python 3.8 或更高版本
- 163 邮箱账号及授权码
模块化重构 - 代码更清晰,扩展更容易!
- ✅ 8个独立模块,职责分明
- ✅ 核心逻辑与UI分离
- ✅ 添加新功能速度提升 5 倍
- ✅ 代码可测试、可复用
- 📖 详见 重构文档
如果您不是开发者,建议直接前往 Releases 页面 下载最新的 .dmg 或 .app 打包版本,无需配置环境,双击即可运行。
如果您想通过源码运行:
cd /Users/code/Eason
./install.sh这将自动创建虚拟环境并在 .venv/ 中安装所有依赖。
# 方式1: 使用启动脚本 (推荐)
./run.sh
# 方式2: 直接运行
python main.py- 登录 163 邮箱
- 点击「设置」→「POP3/SMTP/IMAP」
- 开启「IMAP/SMTP服务」
- 按提示获取授权码(非登录密码)
- 将授权码填入软件的「授权码」输入框
- 在「账号配置」区域填写邮箱和授权码
- 切换到「📥 采集联系人」标签页
- 设置采集数量(默认 200 封)
- 点击「🚀 开始采集」按钮
- 等待采集完成,查看结果
- 点击「💾 导出联系人」保存到文件
- 确保已填写账号配置
- 切换到「📤 批量发送」标签页
- 选择联系人列表文件(.txt 或 .csv)
- 填写邮件主题和正文
- (可选)添加图片或 PDF 附件
- 设置发送策略:
- 批次大小: 每批发送多少封(建议 10 封)
- 间隔时间: 批次之间等待秒数(建议 20-60 秒)
- 点击「🚀 开始发送」
- 在日志窗口查看实时进度
- 授权码非密码: 必须使用邮箱的授权码,不是登录密码
- 批次发送: 建议每批 10 封,间隔 20 秒以上,避免被识别为垃圾邮件
- 联系人格式: 每行一个邮箱地址,或使用 CSV 文件
- 附件大小: 建议单个附件不超过 10MB
# 1. 安装 PyInstaller
pip3 install pyinstaller
# 2. 打包应用
pyinstaller --noconsole \
--onefile \
--name="邮件助手" \
--icon=icon.icns \
email_assistant_gui.py
# 3. 查看生成的应用
open dist/生成的 .app 文件可以双击运行,无需安装 Python。
软件会自动保存配置到:
~/Library/Preferences/com.EmailAssistant.BatchSender.plist
当前版本仅支持 163 邮箱。如需支持其他邮箱,需修改代码中的 SMTP/IMAP 服务器地址:
- QQ 邮箱:
smtp.qq.com/imap.qq.com - Gmail:
smtp.gmail.com/imap.gmail.com - Outlook:
smtp-mail.outlook.com/outlook.office365.com
A: 请确认:
- 使用的是授权码,不是登录密码
- 已开启 IMAP/SMTP 服务
- 网络连接正常
A: 可能原因:
- 授权码错误
- 收件人邮箱地址格式错误
- 附件过大
- 发送频率过高被限制
A: 建议:
- 使用小批次发送(10 封/批)
- 增加批次间隔时间(≥30 秒)
- 邮件内容避免敏感词汇
- 不要频繁使用同一账号大量发送
A: 不建议。同一邮箱账号同时发送可能被服务器拒绝。
- ✨ 首次发布
- 📥 支持联系人采集
- 📤 支持批量发送
- 💾 自动保存配置
欢迎提交 Issue 和 Pull Request!
MIT License
开发者:ihave
⭐️ 如果这个项目对你有帮助,请给个 Star!

