CouponAI:自动帮你提取邮箱里的隐藏优惠!
大家好,这里是架构资源栈!点击上方关注,添加“星标”,一起学习大厂前沿架构!
关注、发送C1即可获取JetBrains全家桶激活工具和码!
每次打开邮箱,是不是都会被一大堆促销邮件轰炸?Swiggy、Zomato、Uber、各种电商……看着眼熟,但大多数我们都懒得点开看。这些邮件里其实藏着不少实实在在的优惠,只不过我们经常错过。
于是我做了一个小项目:CouponAI —— 它能自动帮你从邮箱中提取优惠信息,整理成一目了然的格式,再也不错过每一次省钱的机会!
🛠 我做了啥?
CouponAI 是一个服务器端应用,能自动识别并提取你邮箱中的促销邮件内容。
它是怎么做到的?借助 Postmark 的邮件解析功能 + 本地 LLM(大语言模型),能从邮件中提取以下这些内容:
- 品牌名称(如 Zomato、Uber)
- 优惠标题
- 优惠详情
- 过期时间(如果有)
- 所属分类(吃饭、出行、购物等)
然后这些数据会被保存到 MongoDB 里,并通过一个前端界面展现给你,一个页面就能看完所有优惠信息,超方便!
🎬 项目演示

你可以在本地完整跑起来,但由于使用了本地 LLM 模型,暂时没法上线云端服务。
🚀 本地运行指南
想亲自体验一下?按下面步骤来就行:
1. 克隆项目 & 安装依赖
git clone https://github.com/Utkarsh212/CouponAI.git
cd CouponAI
npm install
2. 安装并运行 Ollama(本地 LLM)
- 下载地址:ollama.com/download
- 推荐模型:
gemma3:4b(你也可以换别的)
ollama run gemma3:4b
3. 配置环境变量 .env
PORT=5000
MODEL=gemma3:4b
HOSTED_MODEL_URL=http://127.0.0.1:11434/api/chat
DB_CONNECTION_URL=你的MongoDB连接串
4. 使用 Ngrok 暴露本地服务
ngrok http 5000
把生成的 ngrok 地址填到 Postmark 后台的 webhook 地址里。
5. 邮件转发测试
- 把任意一封促销邮件转发到 Postmark 提供的邮箱地址
- Postmark 会解析内容并转发给你本地服务
6. 查看解析结果
- 打开
index.html,看到所有已解析的优惠信息 - 或者直接访问 ngrok 提供的 URL,查看 JSON 格式的优惠数据
✉️ 示例效果
转发了一封这样的邮件:

LLM 输出的结果如下:
{
"company": "Zomato",
"offer": "Up to 50% off on your favourite treats",
"details": "Just code ZOMATO while ordering online.",
"expiry": null,
"category": "Food"
}
是不是一下就清清楚楚了?
🧠 架构解析
整个流程其实很流畅:
- 用户转发促销邮件 ➝
- Postmark 接收到并解析邮件内容 ➝
- 调用 LLM 模型提取结构化信息 ➝
- 保存到 MongoDB ➝
- 前端展示可用优惠

💻 技术栈
| 模块 | 技术 |
|---|---|
| 后端服务 | Node.js + Express |
| 本地 LLM | gemma3:4b(Ollama 启动) |
| 数据库 | MongoDB |
| 邮件解析服务 | Postmark Inbound Email Stream |
| 端口映射 | Ngrok |
| 其他工具 | dotenv、axios 等 |
🧪 使用 Postmark 的体验
第一次用 Postmark 的邮件解析功能,整体体验非常顺滑。配置入站流、接 webhook、解析格式——每一步都非常清晰,而且默认解析出来的字段非常干净、好用。
📦 开源地址
项目源码都在这里:
👉 https://github.com/Utkarsh212/CouponAI
🔚 小结
如果你也有“邮箱促销信息太多,根本找不到真正的优惠”的烦恼,不妨试试这个小工具 —— CouponAI,让每一封邮件都变成真正的“省钱提示”!
如果你对邮件解析、LLM 落地、Postmark 集成感兴趣,欢迎评论区交流!🌟
觉得有帮助也别忘了点个赞、点个在看哦~
如果这篇文章对你有帮助的话,别忘了【在看】【点赞】支持下哦~

浙公网安备 33010602011771号