Skip to content

fercopsun/mail-assistant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

多邮箱 AI 邮件助手

本文档是给 Claude Code 的项目说明书,描述要构建什么、为什么这样设计。 实际代码实现请参考 ROADMAP.md 按阶段进行,每个阶段建议开一个新的 Claude Code 会话。

这是什么

一个跑在本地电脑上的工具,把你的多个邮箱(Gmail / QQ邮箱 / 163邮箱 / 126邮箱,Outlook 后续支持)汇总到一起,用你自选的 LLM(DeepSeek、OpenAI 或任何 OpenAI 兼容接口)做两件事:

  1. 每日摘要:定时(比如每天早上8点)抓取最近邮件,分析「今天必须处理 / 本周跟进 / 仅供参考 / 可忽略」分类,每条带优先级和邮件链接。
  2. 辅助回信:针对某封邮件,你加入想表达的意思,点「生成」,AI 结合邮件内容与上下文,拟出一段得体的后续回复,你可以再编辑,最后按「确认发送」按钮才会真正发出。

为什么这样设计

  • 本地脚本,不是网页 artifact:IMAP/SMTP 是底层网络协议,浏览器无法直接建立这种原始连接,所以这必须是一个跑在本机、有完整网络权限的 Python 程序。
  • LLM 提供商不绑定:所有调用走 OpenAI 兼容的 chat/completions 接口,用户在设置里自己填 api_key / base_url / model,DeepSeek、OpenAI、其他兼容服务都能直接用。
  • 发送动作必须人工确认:分类、起草都可以自动,但「真正发出去」这一步默认卡一个确认环节——AI 判断错了收件人或语气,发出去的邮件没有撤回键。这是默认行为,不是死锁限制,后续可以为「已知安全」的模板回复单独放开。
  • 每个邮箱账户的认证方式不同,必须分开说明
    邮箱 认证方式 备注
    Gmail IMAP + 应用专用密码(或 OAuth2) 二选一,应用密码更快
    QQ邮箱 IMAP + 授权码(16位,邮箱设置里生成),不是QQ密码 imap.qq.com / smtp.qq.com
    163 / 126邮箱 IMAP + 客户端授权密码(生成方式同QQ) 统一用 imap.163.com / smtp.163.com 兼容性最好
    Outlook 必须走 OAuth2,2026年4月后密码和应用专用密码全部失效 复杂度显著更高,单独支持,见 ROADMAP

技术栈

  • Python 3.11+
  • imaplib / smtplib(标准库,邮件协议层)
  • Streamlit(本地网页界面)
  • 任意 OpenAI 兼容 SDK 调用方式(openai 库)
  • 系统自带定时任务(macOS/Linux 用 cron,Windows 用「任务计划程序」)触发脚本,而不是程序自己常驻轮询

文档索引

  • ARCHITECTURE.md —— 模块分工、每个文件的职责和接口
  • ROADMAP.md —— 分阶段版本计划,每阶段可独立验收

About

本地运行的多邮箱 AI 助手,支持 Gmail/QQ/163/126,每日自动分类邮件并辅助起草回信,兼容任意 OpenAI 接口的 LLM

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages