名称: ms-outlook-teams-assistant
描述: "在 Windows 电脑上追踪并提醒处理 Microsoft Outlook 邮件及(可选)Microsoft Teams 消息,无需依赖网页版。适用于用户要求:(1) 监控收件箱/提及消息,并通过 Telegram/Teams 持续提醒直至处理完毕;(2) 基于现有 Outlook 邮件线程,草拟简短、亲切、少术语的邮件回复;(3) 提取过去 N 天(默认 7 天)内的待办事项。通过 Outlook 桌面端自动化(COM)实现,若配置则可选使用 Microsoft Graph 处理 Teams 消息。"
pip install pywin32references/config.example.json → references/config.json 并填写内容。references/config.json 包含个人 ID,请勿提交。仅当您能创建 Entra ID 应用注册并授予权限时可用。
references/config.example.json → references/config.json 并填写 teams.tenantId、teams.clientId 和 teams.scopes。scripts/teams_scan.py 以完成设备代码登录。详情参见 references/teams-graph-setup.md。
使用 scripts/scan_outlook.py。
使用 scripts/teams_scan.py。
首次运行将打印设备代码登录消息(请按提示操作一次)。
参数:
- --days 7 (默认值)
- --mode report|telegram (默认值:report)
- --max-items 200
启发式规则(可在配置中编辑):
- 过去 N 天内
- 非来自明显的广播来源
- 优先处理用户位于收件人(To)(而非仅抄送 CC)或主题/正文包含直接询问的会话
- 优先处理用户尚未回复的消息(尽力而为)
输出:
- 待办事项列表,包含:主题、发件人、接收时间、标记原因。
后续操作:
- 若使用 --mode telegram,则发送一条简洁的提醒消息,包含要点列表。
本助手使用本地状态文件来避免重复提醒。
internetMessageId(或使用主题+时间戳作为备选)添加到已关闭列表。snoozeUntil 时间戳。使用 scripts/state.py 中的辅助函数(或必要时直接编辑 JSON)。
使用 scripts/draft_reply.py。
使用 scripts/scan_all.py 更新缓存的扫描结果,然后使用 scripts/remind.py 生成适用于 Telegram 的提醒消息(它不会发送)。
应用规则如下:
- 一对一 Teams 消息:当 needsReply=true 时提醒
- 群组 Teams 消息:当 mentionedMe=true 且 needsReply=true 时提醒
- Outlook 邮件:对标记的项进行提醒
如果输出非空,助手应将其发送到 Telegram。
输入:
- 消息的 EntryID(首选)或通过主题+近期时间窗口搜索。
行为:
- 提取邮件线程(尽力而为)及关键元数据。
- 生成 2 个草稿:
- 简短版(2–5 句话)
- 常规版(5–10 句话)
- 应用 references/writing-style.md 中的语气规则。
输出:
- 将草稿打印到标准输出。
- 如果设置了 --create-draft,可选择在 Outlook 中创建回复草稿(不发送)。
仅询问无法推断的内容:
- 需要回复哪封邮件(主题 / 发件人 / 时间)
- 用户的意图(同意/拒绝/询问信息/确认时间线)
- 任何限制条件(截止日期、附件、姓名)
保持问题最少(每次最多 3 个)。