项目地址:https://github.com/fengyuanluo/FireMail
前缘
最近想研究大模型的逆向拿来自己用,之前也买过一些 Outlook 邮箱,但是都是拿 Thunderbird 管理的。这么做有啥坏处呢?一方面是雷鸟上放一大堆不常用的邮箱严重影响美观,另外一方面,雷鸟导入的过程也挺繁琐的… 当然,市面上也有类似功能的程序,比如心蓝邮件助手什么的,但是…收费
所以就起了想法,一个代码小白,能不能完全依靠 AI,完成一个项目?
过程简单回顾
很庆幸肝了两天经过三次彻底重构最后是让我搞成了,感谢 Cursor 的大力支持,愣生生让我用废了将近 3 个号的额度。
至于过程真是一言难尽,这里放一个最初版的首 Prompt,虽然最后这个版本是没有成功的,oauth2_imap_demo.py 是一个发卡网提供的收件模板…最后还得感谢这个模板,因为喂的官方教程根本用不了一点
我想建立一个名为花火邮箱助手的程序,具体功能如下
1.代码使用python作为后端,VUE作为网页前端
2.oauth2_imap_demo.py是一个通过refresh_token和Outlook邮箱地址收件的示例文件,包括了获取acess_token,认证,收件等功能
3.首先, 需要有一个注册和登录页面,用户输入账号密码登录
4.导入邮箱功能:出现一个输入框,用户输入邮箱----密码----客户端IP----refresh_token格式的信息,每行一个
5.导入后出现邮件信息并开始自动收件,也可以手动执行收件
6.注意,不同用户的邮件相关信息保持隔离,第一个注册的用户设置为管理员,可以管理其他用户,补全用户管理功能
7.css样式外置,保持一个现代化的界面
8.websocket支持,实时收件,响应式界面
在折腾这玩意的时候遇到哪些问题呢?简单的梳理总结一下仅供参考。
- 首 Prompt 非常重要,它会定下整个程序的框架和基调,所以我在折腾过程中两次从头开始,就是因为首 Prompt 写得不够好导致代码变成了屎山…推倒重来都比缝缝补补来得简单
- 如果有 docker 化需求一定要提前做好准备,在把一个开发环境能正常用的代码 docker 化的过程中,我遇到的问题包括但不限于:前后端无法通信,Websocket 无法连接,前端后端 Websocket 一人一个端口导致必须映射三个端口还不能反代
- 继续说 Docker,选择基础镜像很重要。我现在是采用基于 Debian12 的 python:3.12-slim,除了体积大点其他都没啥,想过换了 Alpine 的来节省空间但是实在跑不起来,后续有时间再改改吧
- 从来没有想过日常使用的 Websocket 在实现上会这么困难前前后后改了不知道多少次……
- 尽量一次对话解决一个问题,新的问题换到新的对话解决,不然旧信息影响巨大
- 尽量不要使用最新的编译器版本,尤其当你没有自行处理依赖关系的时候,我第二版就是因为这个原因被毙掉了…
🔥 FireMail – 花火邮箱助手
🌟 一款专为 Microsoft 邮箱设计的批量收件工具,提供简单高效的邮件管理解决方案。
https://github.com/fengyuanluo/FireMail
🖼️ 项目截图
📋 项目功能
- 📥 批量导入邮箱:支持”邮箱—-密码—-客户端 ID—-RefreshToken”的批量导入格式
- 📊 邮箱管理:批量操作多个邮箱账户
- 📬 自动收信:对导入的邮箱进行自动收信操作
- 👥 多用户系统:支持用户注册、登录,权限分级管理
- 🔐 安全管理:数据存储在本地 SQLite 数据库,确保安全性
✨ 项目特点
- 🚀 批量管理:支持多选、全选邮箱,进行批量删除、收信操作
- 🔄 WebSocket 实时通信:及时反馈处理进度和结果
- 🧵 多线程处理:提高邮件收取效率,支持并行处理多个邮箱
- 🎨 简洁界面:简约现代的用户界面,操作简单直观
- 💻 跨平台支持:支持 Windows 和 Linux 平台
- 🔧 Docker 支持:可打包为 Docker 容器快速部署
🛠️ 技术栈
- 后端:Python 3.13, Flask, SQLite, WebSocket
- 前端:Vue 3, Vite, Element Plus
- 其他:OAuth 2.0, IMAP, Docker
🚀 部署教程
🐳 Docker 部署
# 拉取镜像
docker pull luofengyuan/huohuo-email-assistant:latest
# 运行容器
docker run -d \
--name firemail \
-p 80:80 \
-v ./data:/app/backend/data \
--restart unless-stopped \
luofengyuan/huohuo-email-assistant:latest
🐙 Docker-Compose 部署
1、创建 docker-compose.yml
文件:
version: '3'
services:
huohuo-email-assistant:
image: luofengyuan/huohuo-email-assistant:latest
container_name: firemail
restart: unless-stopped
ports:
- "80:80" # 只暴露一个端口,通过Nginx进行反向代理
volumes:
- ./backend/data:/app/backend/data
environment:
- TZ=Asia/Shanghai
- HOST=0.0.0.0
- FLASK_PORT=5000 # 后端服务器端口
- WS_PORT=8765 # WebSocket服务器端口
- JWT_SECRET_KEY=your_secret_key_here # 建议修改为随机字符串
2、启动服务:
docker-compose up -d
📦 源代码部署
1、克隆仓库:
git clone https://github.com/fengyuanluo/FireMail.git
cd FireMail
2、安装后端依赖:
pip install -r requirements.txt
3、安装前端依赖并构建:
cd frontend
npm install
npm run build
4、启动后端服务:
cd ../backend
python app.py
5、在浏览器中访问 http://localhost:3000
📝 使用说明
- 导入邮箱:在”批量导入”页面,按照”邮箱—-密码—-客户端 ID—-RefreshToken”格式导入邮箱
- 管理邮箱:在”邮箱管理”页面查看所有导入的邮箱,进行单个或批量操作
- 收取邮件:点击”收信”按钮开始收取邮件,实时查看进度
- 查看邮件:点击邮箱可以查看已收取的所有邮件内容
👤 用户认证
- 🔐 系统默认开启注册功能
- 👑 第一个注册的用户自动成为管理员
- 🔒 管理员可以开启或关闭注册功能
- 👥 管理员可以手动添加、删除用户和重置用户密码
🔮 未来开发计划
- 📧 支持更多邮箱类型:
- Gmail
- Yahoo
- 163 邮箱
- QQ 邮箱
- 其他主流邮箱服务
- 🏗️ 优化 Docker 镜像:
- 使用 Alpine Linux 作为基础镜像,大幅减小镜像体积
- 进一步优化构建流程,提高镜像构建效率
- 🔍 更多功能:
- 邮件内容搜索
- 邮件分类与标签
- 自动回复功能
📄 开源协议
本项目采用 Apache License 2.0 许可证进行开源。
⚠️ 免责声明
- 本工具仅用于方便用户管理自己的邮箱账户,请勿用于非法用途。
- 使用本工具过程中产生的任何数据安全问题、账户安全问题或违反相关服务条款的行为,均由用户自行承担责任。
- 开发者不对使用本工具过程中可能出现的任何损失或风险负责。
- 本工具与 Microsoft 等邮箱服务提供商没有任何官方关联,使用时请遵守相关服务条款。
- 邮箱账号和密码等敏感信息仅存储在本地 SQLite 数据库中,请确保服务器安全,防止数据泄露。
🔗 相关链接
- 项目地址:https://github.com/fengyuanluo/FireMail
- 问题反馈:请在项目的 Issues 页面提交