一个基于 Python 的桌面邮件管理应用程序,支持邮件发送、接收和批量自动化处理功能。
- 单封邮件发送:支持向单个收件人发送邮件
- 批量邮件发送:支持同时向多个收件人发送邮件
- 规则自动发送:通过配置文件定义批量发送规则
- 附件支持:支持添加多个附件
- 多邮箱服务商支持:自动识别并配置 QQ、Gmail、163、126、Outlook 等主流邮箱的 SMTP 服务器
- 收件箱查看:拉取并显示收件箱中的邮件列表
- 邮件详情预览:查看邮件的发件人、主题、正文内容
- 附件下载:支持下载选中邮件的附件到本地
- 自定义拉取数量:可设置拉取最近 1-200 封邮件
- 智能附件识别:准确识别邮件中的各类附件(包括内联附件)
- 多邮箱服务商支持:自动识别并配置主流邮箱的 IMAP 服务器
- 图形化界面:基于 Tkinter 的友好桌面应用
- 简洁导航:主界面快速切换发件和收件功能
- 实时反馈:操作结果即时提示
- 日志记录:详细记录所有操作日志
- Python 3.6+
- 无需额外安装第三方库(仅使用 Python 标准库)
bash
git clone <repository-url>
cd MailManager
bash
python ui_app.py
编辑 main.py 配置您的邮箱信息后运行:
bash
python main.py
-
进入发件界面
- 启动应用后点击"进入发件功能"
-
填写邮箱信息
- 输入发件人邮箱地址
- 输入邮箱授权码(非登录密码,需在邮箱设置中获取)
-
编写邮件
- 单个收件人:在"单个收件人"栏输入邮箱
- 批量收件人:在文本框中每行输入一个邮箱地址
- 填写邮件主题和正文
- 点击"选择附件"添加附件(可选)
-
发送邮件
- 点击"发送单封邮件"发送给单个收件人
- 点击"批量自动发送"发送给多个收件人或按规则发送
-
进入收件界面
- 启动应用后点击"进入收件功能"
-
填写邮箱信息
- 输入邮箱地址
- 输入邮箱授权码
-
设置拉取数量
- 输入要拉取的邮件数量(1-200,默认 20)
-
刷新收件箱
- 点击"刷新收件箱"按钮
-
查看邮件
- 在列表中点击邮件查看详细信息
- 如有附件,点击"下载选中邮件附件"保存到本地
编辑 config/rules.json 文件配置批量发送规则:
json
[
{
"email": "recipient@example.com",
"subject": "邮件主题",
"body": "邮件正文",
"attachments": ["attachments/file.pdf"]
}
]
字段说明:
email: 收件人邮箱地址subject: 邮件主题body: 邮件正文attachments: 附件路径列表(可选)
系统自动识别以下邮箱服务商的 SMTP/IMAP 服务器:
| 邮箱服务商 | SMTP 服务器 | IMAP 服务器 |
|---|---|---|
| QQ 邮箱 | smtp.qq.com:465 | imap.qq.com:993 |
| Gmail | smtp.gmail.com:465 | imap.gmail.com:993 |
| 163 邮箱 | smtp.163.com:465 | imap.163.com:993 |
| 126 邮箱 | smtp.126.com:465 | imap.126.com:993 |
| Outlook/Hotmail/Live | smtp-mail.outlook.com:465 | outlook.office365.com:993 |
- 登录 QQ 邮箱网页版
- 进入"设置" → "账户"
- 找到"POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务"
- 开启"IMAP/SMTP服务"
- 按照提示获取授权码
- 启用两步验证
- 生成应用专用密码
- 使用该密码作为授权码
- 登录邮箱网页版
- 进入"设置" → "POP3/SMTP/IMAP"
- 开启"IMAP/SMTP服务"
- 获取授权码
- 启用两步验证
- 创建应用密码
- 使用该密码作为授权码
所有操作日志保存在 logs/mail.log 文件中,包括:
- 邮件发送记录
- 邮件接收记录
- 附件处理记录
- 错误信息
应用关闭时会自动清理日志文件。
- 授权码安全:授权码相当于邮箱密码,请妥善保管,不要泄露给他人
- 附件大小限制:注意邮箱服务商对附件大小的限制(通常为 25-50MB)
- 发送频率限制:避免短时间内大量发送邮件,可能被邮箱服务商判定为垃圾邮件
- 网络要求:需要稳定的网络连接,部分邮箱服务商可能需要科学上网(如 Gmail)
- 防火墙设置:确保防火墙允许访问 SMTP(465端口)和 IMAP(993端口)
- 检查邮箱地址是否正确
- 确认使用的是授权码而非登录密码
- 确认已开启邮箱的 IMAP/SMTP 服务
- 检查网络连接
- 确认防火墙未阻止相应端口
- 尝试更换网络环境
- 确认邮箱中有邮件
- 检查是否选择了正确的邮箱账号
- 查看日志文件了解详细错误信息
- 编程语言: Python 3.6+
- GUI 框架: Tkinter
- 邮件协议: SMTP (发送), IMAP (接收)
- 标准库: smtplib, imaplib, email, tkinter, logging, json
本项目仅供学习和研究使用。
欢迎提交 Issue 和 Pull Request!
如有问题或建议,请通过以下方式联系:
- 提交 Issue
- 发送邮件至项目维护者
免责声明: 请合理使用本工具,遵守相关邮箱服务商的使用条款,不得用于发送垃圾邮件或进行其他违法活动。