我用AI搓了个Outlook邮箱管理程序

项目地址:GitHub - 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支持,实时收件,响应式界面

在折腾这玩意的时候遇到哪些问题呢?简单的梳理总结一下仅供参考。

  1. 首 Prompt 非常重要,它会定下整个程序的框架和基调,所以我在折腾过程中两次从头开始,就是因为首 Prompt 写得不够好导致代码变成了屎山…推倒重来都比缝缝补补来得简单
  2. 如果有 docker 化需求一定要提前做好准备,在把一个开发环境能正常用的代码 docker 化的过程中,我遇到的问题包括但不限于:前后端无法通信,Websocket 无法连接,前端后端 Websocket 一人一个端口导致必须映射三个端口还不能反代
  3. 继续说 Docker,选择基础镜像很重要。我现在是采用基于 Debian12 的 python:3.12-slim,除了体积大点其他都没啥,想过换了 Alpine 的来节省空间但是实在跑不起来,后续有时间再改改吧
  4. 从来没有想过日常使用的 Websocket 在实现上会这么困难前前后后改了不知道多少次…
  5. 尽量一次对话解决一个问题,新的问题换到新的对话解决,不然旧信息影响巨大
  6. 尽量不要使用最新的编译器版本,尤其当你没有自行处理依赖关系的时候,我第二版就是因为这个原因被毙掉了…

:fire: FireMail - 花火邮箱助手

:glowing_star: 一款专为 Microsoft 邮箱设计的批量收件工具,提供简单高效的邮件管理解决方案。

https://github.com/fengyuanluo/FireMail

:framed_picture: 项目截图

:clipboard: 项目功能

  • :inbox_tray: 批量导入邮箱:支持"邮箱----密码----客户端 ID----RefreshToken"的批量导入格式
  • :bar_chart: 邮箱管理:批量操作多个邮箱账户
  • :open_mailbox_with_raised_flag: 自动收信:对导入的邮箱进行自动收信操作
  • :busts_in_silhouette: 多用户系统:支持用户注册、登录,权限分级管理
  • :locked_with_key: 安全管理:数据存储在本地 SQLite 数据库,确保安全性

:sparkles: 项目特点

  • :rocket: 批量管理:支持多选、全选邮箱,进行批量删除、收信操作
  • :counterclockwise_arrows_button: WebSocket 实时通信:及时反馈处理进度和结果
  • :thread: 多线程处理:提高邮件收取效率,支持并行处理多个邮箱
  • :artist_palette: 简洁界面:简约现代的用户界面,操作简单直观
  • :laptop: 跨平台支持:支持 Windows 和 Linux 平台
  • :wrench: Docker 支持:可打包为 Docker 容器快速部署

:hammer_and_wrench: 技术栈

  • 后端:Python 3.13, Flask, SQLite, WebSocket
  • 前端:Vue 3, Vite, Element Plus
  • 其他:OAuth 2.0, IMAP, Docker

:rocket: 部署教程

:spouting_whale: 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

:octopus: 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  # 建议修改为随机字符串
  1. 启动服务:
docker-compose up -d

:package: 源代码部署

  1. 克隆仓库:
git clone https://github.com/fengyuanluo/FireMail.git
cd FireMail
  1. 安装后端依赖:
pip install -r requirements.txt
  1. 安装前端依赖并构建:
cd frontend
npm install
npm run build
  1. 启动后端服务:
cd ../backend
python app.py
  1. 在浏览器中访问 http://localhost:3000

:memo: 使用说明

  1. 导入邮箱:在"批量导入"页面,按照"邮箱----密码----客户端 ID----RefreshToken"格式导入邮箱
  2. 管理邮箱:在"邮箱管理"页面查看所有导入的邮箱,进行单个或批量操作
  3. 收取邮件:点击"收信"按钮开始收取邮件,实时查看进度
  4. 查看邮件:点击邮箱可以查看已收取的所有邮件内容

:bust_in_silhouette: 用户认证

  • :locked_with_key: 系统默认开启注册功能
  • :crown: 第一个注册的用户自动成为管理员
  • :locked: 管理员可以开启或关闭注册功能
  • :busts_in_silhouette: 管理员可以手动添加、删除用户和重置用户密码

:crystal_ball: 未来开发计划

  • :e_mail: 支持更多邮箱类型:

    • Gmail
    • Yahoo
    • 163 邮箱
    • QQ 邮箱
    • 其他主流邮箱服务
  • :building_construction: 优化 Docker 镜像:

    • 使用 Alpine Linux 作为基础镜像,大幅减小镜像体积
    • 进一步优化构建流程,提高镜像构建效率
  • :magnifying_glass_tilted_left: 更多功能:

    • 邮件内容搜索
    • 邮件分类与标签
    • 自动回复功能

:page_facing_up: 开源协议

本项目采用 Apache License 2.0 许可证进行开源。

:warning: 免责声明

  1. 本工具仅用于方便用户管理自己的邮箱账户,请勿用于非法用途。
  2. 使用本工具过程中产生的任何数据安全问题、账户安全问题或违反相关服务条款的行为,均由用户自行承担责任。
  3. 开发者不对使用本工具过程中可能出现的任何损失或风险负责。
  4. 本工具与 Microsoft 等邮箱服务提供商没有任何官方关联,使用时请遵守相关服务条款。
  5. 邮箱账号和密码等敏感信息仅存储在本地 SQLite 数据库中,请确保服务器安全,防止数据泄露。

:link: 相关链接


:sparkling_heart: 如果您喜欢这个项目,请给它一个 Star!

原文链接:我用AI搓了个Outlook邮箱管理程序 | 洛风缘的小屋

欢迎来我的博客玩喵

155 Likes

不错不错

17 Likes

这个东西可以有 很方便

16 Likes

牛啊,部署一个试试

16 Likes

佬友真是太有实力啦 :bili_019:

16 Likes

不错不错先mark一下 :smiley:

16 Likes

可以收藏了,感谢佬

16 Likes

好东西啊!

16 Likes

如果对于批量的注册机来说的话,最好的情况其实建议增加两个功能

  1. 支持邮件接收关键字过滤,比如我在这里只显示某些关键字的邮件
  2. 支持API获取邮件内容,只用输入邮箱和关键字即可
18 Likes

感谢大佬分享好东西

16 Likes

我后续看一下吧,功能1感觉还好,2可能有点麻烦(大不了再费几个号hhh

16 Likes

佬友真是太有实力了

12 Likes

不错不错先 mark 一下

7 Likes

感谢巨佬的无私分享:tieba_087:

4 Likes

给大佬点个赞

4 Likes

太强了,大佬!

3 Likes

绷不住了,测试了一下直接兼容Hotmail

2 Likes

好东西搞的真不错

大佬太强了 :+1:t6:

大佬太强了~