跳到主内容
← 返回项目目录
运营中 · 结果来自试运行记录

独立开发 · 需求到上线 · 2025

冷邮件客户唤醒

将 1,600 多条历史询盘接入分批投递与回信处理流程:五个邮箱按时区排期,停止类判定触发后续轮次停止,草稿和异常保留人工复核。

PythonFastAPISQLite WALIMAP / SMTPKimi K2.5

阶段记录,统计窗口未统一

  1. 1,602客户入库
  2. 52首阶段草稿
  3. 127已发送
  4. 11%回信率
  5. 3有效询价

交付与结果

127 封试运行投递,3 个有效询价

我的职责
从需求到上线独立开发,覆盖排期、发送状态、收信分类和运营后台。
数字的范围
1,602 是入库规模,52 是首阶段草稿记录;127 封、11% 回信率和 3 个有效询价来自试运行记录。公开材料未列统一统计起止日期,各阶段不能据此推算转化率,也不代表持续更新的累计业绩。
公开材料
可查看使用虚构数据录制的后台演示,以及项目治理规范;演示中的数字不用于证明生产结果。
阅读:发送状态先落库的取舍

遇到异常,怎么处理

下面是系统设计中的处理路径,展示方案的边界与取舍。

投递进程中断
发送状态先落库再投递,优先避免重复发送;可能漏发的记录需要核对。
收到退订或明确拒绝
停止类判定触发后续轮次停止,回复内容由 AI 起草、人工确认。

要解决什么

老询盘有价值,但人工一条条跟根本跟不过来。

重复投递、或继续发给已退订的人,会影响客户体验与发信域名信誉。

设计上优先降低重复发送风险,并让停止条件与异常记录可以复核。

工作流程

按内容资料整理的语义流程示意,不作为运行结果证明。

  1. 01 名单入库 去重、无效域名剔除、按 CASL 剔除加拿大地址
  2. 02 内容预生成 前一天生成次日全部正文,人工抽检后入队
  3. 03 阶梯排期 按收件人时区落到当地上午,分轮推进
  4. 04 发送 瞬态进程定时触发,状态先落库再投递
  5. 05 收信与分类 定时抓 IMAP,精确匹配回原邮件
  6. 06 停止判定 退订 / 不感兴趣 → 立即叫停后续轮次

为什么这么选

WAL 解决哪一部分并发问题?

SQLite WAL

WAL 允许读写并行,但同一时刻仍只有一个写事务,也可能遇到 SQLITE_BUSY。它改善的是数据库并发;领取发送任务、状态更新与防重仍要由事务和业务规则约束。

状态先落库还是先发信?

先落库

先发后记时,投递成功但记录失败可能引发重复发送。先记后发优先降低这类风险,但可能留下漏发或结果未知的记录,需要核对后处理;这个顺序本身不能保证任何故障下都不重复。

回信分类由 AI 判还是关键词判?

关键词兜底 + AI 起草

停止类判定关系到合规,不能交给可能出错的模型;而回复内容让 AI 起草、人工确认再发,省时间又不失控。

系统界面

本地演示实例 + 确定性演示数据,客户信息全部虚构

虚构数据演示:从运营总览到回信分类,查看判定结果与匹配的原邮件