关于 ms-outlook-teams-assistant
面向 Outlook Desktop 用户的邮件与 Teams 跟进技能,可筛查待回复消息、生成提醒并起草邮件回复。默认不自动发送消息,提醒可发往 Telegram;Teams 跟踪为可选功能。
主要功能
- 01筛查近期可能待回复邮件
- 02可选扫描 Teams 聊天消息
- 03生成 Telegram 提醒内容
- 04创建符合语气要求的邮件草稿
- 05支持关闭或延后提醒
适用场景
- 01整理近期需要回复的 Outlook 邮件
- 02通过 Telegram 接收待办消息提醒
- 03为指定邮件生成简短或常规回复草稿
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ abhinavjp/ ms-outlook-teams-assistant --skill ms-outlook-teams-assistant安装后在 Claude Code 中输入/ms-outlook-teams-assistant确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdreferences/teams-graph-setup.mdconfig.example.jsonwriting-style.mdscripts/remind.pystate.pydraft_reply.pydismiss.pyscan_outlook.pyscan_all.pyteams_scan.py详细介绍
MS Outlook + Teams 助手(桌面优先)
此技能的功能
- 收件箱提醒(Outlook 桌面版):查找过去 7 天内可能需要回复的邮件,并持续发送提醒,直到用户将其忽略。
- 起草邮件回复:生成简洁的草稿,符合用户的语气规则(对话式、精简、礼貌;使用简单英语;篇幅短;减少冗余;避免使用 em dash)。
- Teams 跟踪(可选):如果已配置 Microsoft Graph 且租户策略允许,则跟踪近期可能需要回复的 Teams 聊天消息,并以类似方式发送提醒。
安全默认设置
- 不要自动发送邮件或 Teams 消息。
- 在 Outlook 中创建草稿,或将草稿粘贴到 Telegram 以供批准。
- 对于提醒:默认发送到 Telegram;只有在明确启用时才发送到 Teams。
设置(一次性)
A) Outlook 桌面版自动化(推荐)
- 确保已安装 Outlook 桌面版并登录。
- 安装 Python 依赖项(在此设备上安装前请先征求同意):
pip install pywin32
- 创建配置文件:
- 复制
references/config.example.json→references/config.json并填写内容。 - 重要:如果
references/config.json包含个人 ID,请勿提交该文件。
- 复制
B) 通过 Graph 使用 Teams(可选)
仅当你可以创建 Entra ID 应用注册并授予权限时才进行。
- 复制
references/config.example.json→references/config.json并填写teams.tenantId、teams.clientId和teams.scopes。 - 然后运行
scripts/teams_scan.py一次,完成设备代码登录。
参见 references/teams-graph-setup.md。
核心工作流
1) 扫描并提醒(Outlook)
使用 scripts/scan_outlook.py。
1b) 扫描 Teams(Graph)
使用 scripts/teams_scan.py。
参数:
--days 7(默认值)
首次运行时会显示设备代码登录消息(按提示操作一次即可)。
参数:
--days 7(默认值)--mode report|telegram(默认值:report)--max-items 200
启发式规则(可在配置中编辑):
- 在最近 N 天内
- 排除明显的群发来源
- 优先选择用户位于收件人:(而非仅抄送)或主题/正文中包含直接请求的会话
- 优先选择用户尚未回复的消息(尽力判断)
输出:
- 可执行事项列表,包含:主题、发件人、接收时间、标记原因。
然后:
- 如果使用
--mode telegram,则发送一条简洁的提醒消息,其中包含项目符号列表。
2) 忽略 / 延后处理某个事项
此技能使用本地状态文件,以避免循环提醒。
- 忽略:将消息的
internetMessageId(或主题 + 时间戳备用值)添加到忽略列表。 - 延后处理:保存一个
snoozeUntil时间戳。
使用 scripts/state.py 辅助函数(或在需要时直接编辑 JSON)。
3) 起草邮件回复(Outlook)
使用 scripts/draft_reply.py。
4) 生成提醒(不发送)
使用 scripts/scan_all.py 更新缓存的扫描结果,然后使用 scripts/remind.py 生成可直接用于 Telegram 的提醒消息(此脚本不会发送)。
它采用以下规则:
- 一对一 Teams → 当
needsReply=true时提醒 - 群组 Teams → 当
mentionedMe=true且needsReply=true时提醒 - Outlook → 提醒已标记的事项
如果输出非空,Agent 应将其发送到 Telegram。
输入:
- 消息的
EntryID(首选),或按主题 + 最近时间范围搜索。
行为:
- 提取会话(尽力而为)和关键元数据。
- 生成 2 份草稿:
- 简短版(2–5 句)
- 普通版(5–10 句)
- 应用
references/writing-style.md中的语气规则。
输出:
- 将草稿打印到标准输出。
- 如果设置了
--create-draft,则可选择创建 Outlook 回复草稿(不发送)。
需要向用户了解更多信息时
仅询问无法推断的信息:
- 要回复哪封邮件(主题 / 发件人 / 时间)
- 用户的意图(同意 / 拒绝 / 询问信息 / 确认时间安排)
- 任何限制(截止日期、附件、姓名)
问题应尽量精简(每次最多 3 个)。
评论
支持 Markdown