Office 365/Outlook 连接器,支持邮件(读取/发送)、日历(读取/写入)和联系人(读取/写入),采用弹性的 OAuth 认证。现已支持多账户,可在单一技能中管理多个 Microsoft 365 身份。解决 Office 365 邮件、日历和联系人连接的难题。使用 Microsoft Graph API,提供完整的 Azure 应用注册设置指南。非常适合在 OpenClaw 中访问 Microsoft 365/Outlook 数据。
Office 365 Connector(多账户增强).
功能概述
Office 365 Connector(多账户增强).是一项面向实际任务的技能,主要用于Overview. 这种技能提供了与Office 365/Outlook服务(包括电子邮件、日历和联系人)的弹性、生产准备连接。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
核心要点
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
使用与执行
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
结果检查与注意事项
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
Office 365 连接器(多账户增强版)
概述
本技能提供面向生产环境的、高可用的 Office 365 / Outlook 服务连接能力,支持电子邮件、日历和联系人等核心功能。现支持多账户管理(v2.0.0),您可在单次技能安装下统一管理多个 Microsoft 365 身份(如工作账号、个人账号、顾问账号等)。
该技能通过提供 OAuth 认证、自动令牌刷新、按账户隔离的会话管理,以及详尽的 Azure 应用注册配置指南,有效解决了自动化工具连接 Office 365 的常见难题。
适用场景:
- 跨多个组织管理多个工作身份
- 分离个人与职业邮箱/日历
- 访问共享邮箱及委派日历
- 为多个客户工作的顾问与自由职业者
v2.0.0 新增特性:多账户支持!完整使用说明请参阅 MULTI-ACCOUNT.md。
致谢:由 Matthew Gordon(matt@workandthrive.ai)增强开发 —— 完整致谢信息详见 CREDITS.md。
v2.0.0 新增内容
Matthew Gordon 主导的重大增强:
- ✨ 多账户管理 —— 单一技能实例支持多个 Microsoft 365 身份
- 🔐 按账户令牌隔离 —— 每个账户拥有独立、安全的令牌存储空间
- 🔄 便捷账户切换 —— 所有操作均支持
--account=name参数 - ⚙️ 默认账户设定 —— 可指定常用账户以提升操作效率
- 📦 旧版迁移工具 —— 无缝迁移现有单账户配置
- 🎯 账户管理 CLI —— 提供简洁的 add/remove/list/default 命令集
- ✅ 完全向后兼容 —— 现有单账户配置无需任何修改即可继续运行
完整版本历史请参阅 CHANGELOG.md。
功能特性
邮件操作
- 读取邮件(收件箱、已发送、自定义文件夹)
- 发送邮件(支持附件、HTML 格式)
- 按发件人、主题、日期范围搜索邮件
- 管理文件夹及移动邮件
- 标记为已读/未读、为邮件添加标记
- 删除邮件
日历操作
- 读取日历事件
- 创建/更新/删除事件
- 检查空闲时间
- 管理会议邀请
- 支持重复事件
- 时区处理
联系人操作
- 读取联系人及联系人文件夹
- 创建/更新/删除联系人
- 按姓名、邮箱、公司名称搜索联系人
- 管理联系人组
- 同步联系人信息
快速开始 —— 多账户模式
添加首个账户
cd skills/office365-connector # 添加账户 node accounts.js add workyou@work.com "Work account" # 认证登录 node auth.js login --account=work
添加更多账户
# 添加个人账户 node accounts.js add personalyou@outlook.com "Personal" # 添加顾问账户 node accounts.js add consulting you@client.com "Consulting" # 设置默认账户 node accounts.js default work # 列出全部账户 node accounts.js list
使用账户
# 查看工作日历 node calendar.js today --account=work # 读取个人邮件 node email.js recent 10 --account=personal # 使用顾问账户发送邮件 node send-email.js send client@example.com "Subject" "Body" --account=consulting
从单账户配置迁移
已在使用 v1.0.0?完全无需担心!
# 导入现有配置 node accounts.js import-legacy # 继续无变更使用(环境变量仍有效) # 或新增其他账户 node accounts.js add secondary
前提条件
使用本技能前,您 必须 完成 Azure 应用注册配置,以获取以下三项凭证:
- 租户 ID(Tenant ID) —— 您的 Azure AD 租户标识符
- 客户端 ID(Client ID) —— 您的应用程序(客户端)ID
- 客户端密钥(Client Secret) —— 您的应用程序密钥值
配置耗时:约每账户 10–15 分钟
完整分步操作指南请参阅 Setup Guide。
权限验证
本技能需以下 委派权限(需用户授权同意):
邮件权限
Mail.Read—— 读取用户邮件Mail.ReadWrite—— 对用户邮件进行读写操作Mail.Send—— 以用户身份发送邮件
日历权限
Calendars.Read—— 读取用户日历Calendars.ReadWrite—— 对用户日历进行读写操作
联系人权限
Contacts.Read—— 读取用户联系人Contacts.ReadWrite—— 对用户联系人进行读写操作
个人资料权限(认证必需)
User.Read—— 登录并读取用户个人资料offline_access—— 持久访问数据(用于刷新令牌)
重要提示:在执行配置前,请确认您已充分理解并接受上述权限。每一项权限均授予对您的 Microsoft 365 数据的特定访问权限。
各权限具体作用说明请参阅 Permissions Reference。
配置
多账户配置(v2.0.0+)
账户信息存储于 ~/.openclaw/auth/office365-accounts.json,令牌文件存于 ~/.openclaw/auth/office365/ 目录下。
使用 accounts.js CLI 工具进行管理:
node accounts.js list # 列出全部账户 node accounts.js add... # 添加账户 node accounts.js remove # 删除账户 node accounts.js default # 设为默认账户
旧版单账户配置(向后兼容)
单账户模式下仍支持环境变量配置:
export AZURE_TENANT_ID="your-tenant-id" export AZURE_CLIENT_ID="your-client-id" export AZURE_CLIENT_SECRET="your-client-secret"
或在 OpenClaw 配置中声明:
{
"env": {
"vars": {
"AZURE_TENANT_ID": "your-tenant-id",
"AZURE_CLIENT_ID": "your-client-id",
"AZURE_CLIENT_SECRET": "your-client-secret"
}
}
}
认证流程
本技能采用 OAuth 2.0 设备代码流(Device Code Flow) 实现高可靠性认证:
- 向 Microsoft 请求设备代码
- 显示用户代码及验证网址
- 用户访问网址并输入代码
- 轮询等待令牌发放完成
- 保存访问令牌 + 刷新令牌(按账户隔离)
- 令牌过期时自动刷新
令牌存储:令牌安全存储于 ~/.openclaw/auth/office365/,文件权限设为 0600(仅属主可读写)。
使用示例
多账户邮件操作
# 从默认账户读取 node email.js recent 10 # 从指定账户读取 node email.js recent 10 --account=work # 在顾问账户中搜索 node email.js search "proposal" --account=consulting # 使用对应身份发送 node send-email.js send client@example.com "Update" "..." --account=consulting
多账户日历操作
# 查看工作日历 node calendar.js today --account=work # 查看个人日历 node calendar.js week --account=personal
账户管理
# 列出所有已配置账户 node accounts.js list # 检查认证状态 node auth.js status --account=work # 如需重新认证 node auth.js login --account=work
真实应用场景
多个工作身份
适用于跨多个组织协作的典型场景:
# 上午:检查全部日历 node calendar.js today --account=work node calendar.js today --account=consulting node calendar.js today --account=startup # 按身份处理邮件 node email.js recent --account=work node email.js recent --account=consulting # 使用对应账户发送 node send-email.js send client@bigcorp.com "Proposal" "..." --account=work
个人与职业分离
# 工作时段:使用工作账户 node calendar.js today --account=work node email.js recent --account=work # 下班后:使用个人账户 node email.js recent --account=personal
错误处理
本技能内置健壮的错误处理机制,覆盖以下场景:
- 令牌过期 —— 自动刷新,并采用指数退避重试策略
- 请求限频 —— 内置重试逻辑,含合理延迟间隔
- 网络异常 —— 支持连接超时处理
- 权限错误 —— 明确提示缺失的权限范围(scope)
- API 错误 —— 返回 Microsoft Graph 提供的详细错误信息
- 账户未找到 —— 提供友好错误信息及解决建议
速率限制
Microsoft Graph API 存在如下速率限制:
- 每应用限制:每小时最多 130,000 次请求
- 每用户限制:根据实际负载动态调整
- 限频响应:返回 HTTP 429 状态码时自动触发重试
本技能自动处理限频响应,并采用指数退避策略。
安全注意事项
- 令牌安全:令牌文件采用严格权限控制(0600)
- 账户隔离:每个账户拥有独立的令牌存储路径
- 最小权限原则:仅申请必需的最低权限范围
- 刷新令牌管理:自动轮换,旧令牌立即失效
- 客户端密钥保护:绝不记录或暴露;以 0600 权限存储
- 多租户支持:当前配置为单租户模式(仅限您所在组织)
故障排查
多账户问题
“未指定账户且未设置默认账户”
# 设置默认账户 node accounts.js default work # 或始终显式指定 --account= node calendar.js today --account=work
“账户未找到”
# 列出可用账户 node accounts.js list # 添加缺失账户 node accounts.js add
认证已过期
# 检查状态 node auth.js status --account=work # 重新认证 node auth.js login --account=work
常见问题
“AADSTS700016:目录中未找到应用程序”
- 确认租户 ID 与您的 Azure AD 租户匹配
- 确认应用注册未被意外删除
“AADSTS65001:用户未授权”
- 完成设备代码流认证流程
- 如组织策略要求,需管理员授权(Admin Consent)
“AADSTS700082:刷新令牌已过期”
- 使用设备代码流重新认证
- 检查令牌存储文件的权限设置
“403 Forbidden”
- 确认 Azure 中已授予所需 API 权限
- 检查是否需要管理员授权
详细排障指南请参阅 Setup Guide 和 MULTI-ACCOUNT.md。
限制条件
- 附件大小:单个附件最大 4MB(API 限制)
- 邮件收件人:单封邮件最多支持 500 个收件人
- 日历事件:最多支持创建未来 1,095 天内的事件
- 批量操作:每批次最多 20 个请求
命令参考
账户管理
node accounts.js list # 列出全部账户 node accounts.js add[email] [desc] node accounts.js remove # 删除账户 node accounts.js default # 设为默认账户 node accounts.js import-legacy # 导入 v1.0.0 配置
认证
node auth.js login [--account=name] # 认证登录 node auth.js status [--account=name] # 检查认证状态 node auth.js token [--account=name] # 获取访问令牌
邮件
node email.js recent [count] [--account=name] node email.js search "query" [--account=name] node email.js from email@domain [--account=name] node email.js read[--account=name]
日历
node calendar.js today [--account=name] node calendar.js week [--account=name]
发送与管理
node send-email.js send[--account=name] node send-email.js reply [--account=name] node cancel-event.js [comment] [--account=name]
资源
文档文件
- MULTI-ACCOUNT.md —— 完整多账户使用指南
- CHANGELOG.md —— 版本历史与变更说明
- CREDITS.md —— 致谢与贡献者列表
- references/setup-guide.md —— Azure 应用注册操作指南
- references/permissions.md —— 安全与权限参考文档
Microsoft 官方资源
- Microsoft Graph API 文档:https://learn.microsoft.com/en-us/graph/api/overview
- 委派权限 vs 应用权限:https://learn.microsoft.com/en-us/graph/auth/auth-concepts
- 速率限制说明:https://learn.microsoft.com/en-us/graph/throttling
致谢
原始技能:ClawHub 社区发布的 office365-connector v1.0.0
多账户增强版(v2.0.0):Matthew Gordon(matt@workandthrive.ai)
衷心感谢 Matthew Gordon 贡献多账户增强功能,使本技能对顾问、自由职业者及任何需管理多个工作身份的用户更具实用价值!
完整致谢信息请参阅 CREDITS.md。
许可证
本技能保持与原始版本许可证的兼容性。具体条款详见 CREDITS.md。
热门AI工具
相关专题
microsoft office提供更广泛的功能和市场领先的兼容性,但成本较高。wps针对基本办公任务提供了免费或低成本的替代方案,并具有更广泛的平台支持。想了解更多Office和Wps的相关内容,可以阅读本专题下面的文章。
1881
2024.07.10
office软件有:1、Microsoft Word;2、Microsoft Excel;3、Microsoft PowerPoint;4、Microsoft Outlook;5、Microsoft OneNote;6、Microsoft Access;7、Microsoft Publisher。本专题提供office软件相关的文章、下载和课程。
1897
2023.06.29
Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。
0
2026.10.28
Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。
0
2026.10.28
Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。
0
2026.10.28
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.6万人学习
共6课时 | 54.7万人学习