Skip to content

Latest commit

 

History

History
108 lines (78 loc) · 4.2 KB

File metadata and controls

108 lines (78 loc) · 4.2 KB

Outlook Access Skill — AI Agent 访问 Outlook 的 Graph API 技能

Languages: English | 简体中文

Python License Microsoft Graph Agent Skill

Outlook Access Skill 是一个面向 AI Agent 的 Microsoft Graph API 技能包(SKILL.md + 工具): 授权一次,Agent 就能读写你的 Outlook —— 读邮件、搜索、发邮件(纯文本 / HTML)、 按规则自动整理归档、列文件夹、看账户。纯 Python 标准库,零第三方依赖。

关键词:Outlook Agent Skill · AI 访问 Outlook · Microsoft Graph API · 邮件自动化 · AI Email Automation · LLM 邮件工具 · Outlook 邮件整理 · Inbox Zero · AI Agent 技能


🤖 这是什么

给支持 SKILL.md 的 AI Agent(Reasonix / Claude Code / Codex 等)使用的 Outlook 访问技能。核心是一个通用 Graph API 命令行工具 + 一份 Agent 可读的 技能说明书(SKILL.md)。

只要用户完成一次 OAuth 授权,Agent 就可以基于 API 做任何邮件操作—— 整理只是其中一个用法:

  • 📥 读取 / 搜索邮件(按发件人、关键词、时间)
  • ✉️ 发送邮件(纯文本 / 带样式的 HTML)
  • 🗂️ 按规则自动整理归档(多线程,~500 封/分钟)
  • 📁 列出 / 管理邮件文件夹
  • 🔐 OAuth 2.0 官方授权,令牌自动刷新,无需重复登录
  • 🚀 多线程并发 + 限流自动退避 + 网络自动重试

🛠️ 技术基础

技术 说明
Microsoft Graph API v1.0 微软官方邮件 / 日历 / 文件统一接口
Python 3.7+ 仅标准库(urllib / json / concurrent.futures),零第三方依赖
OAuth 2.0 Device Code 官方授权流程,支持个人 Microsoft 账户
SKILL.md Agent 技能标准格式,可直接安装到支持 Agent 的工具链

🚀 快速开始

安装

git clone https://github.com/HanHan666666/outlook-access-skill.git
cd outlook-access-skill

把本目录安装为 Agent skill(以 Reasonix 为例):

reasonix skill install ./outlook-access-skill   # 或复制到你的 skills 目录

授权(只需一次)

python3 outlook.py whoami

按提示打开 https://microsoft.com/link 输入设备码,登录并授权。

常用操作

python3 outlook.py folders                                   # 查看文件夹
python3 outlook.py "/me/messages?$top=10&$select=subject,from,receivedDateTime"  # 最近邮件
python3 outlook.py stats --top 20                            # 收件箱域名统计
python3 outlook.py organize --dry-run                        # 预览整理方案
python3 outlook.py organize --confirm --workers 8            # 执行整理

📖 完整命令

命令 说明
whoami 当前授权账户
folders 列出邮件文件夹及邮件数
stats [--folder 收件箱] [--top 30] 按发件域名统计
organize --dry-run / --confirm [--workers 8] 预览 / 执行规则整理
move <message_id> <文件夹名> 移动单封邮件
rules 显示当前规则
"/me/..." 直接调用任意 Graph v1.0 路径

⚙️ 整理规则(rules.json,可选)

[
  {"keyword": "github.com",    "folder": "GitHub"},
  {"keyword": "stackoverflow", "folder": "GitHub"},
  {"keyword": "newsletter",    "folder": "Newsletters"}
]
  • keyword 对发件人域名做子串匹配(如 hsbc 可匹配 notification.hsbc.com.hk
  • folder 为目标文件夹名;模板见 rules.example.json

🔐 权限与安全

授权 scope:Mail.ReadMail.ReadWriteMail.SendUser.Readoffline_access。 令牌保存在本地 .outlook-token.json(已 gitignore),请勿提交或外传。

📄 License

MIT © 2026 HanHan666666