使用 NemoClaw 在网络层面强制执行邮件安全策略,适用于用户提及“邮件策略”“发送防护”“防止误发”“邮件...”等场景。
NemoClaw电子邮件政策是一项面向实际任务的技能,主要用于NemoClaw 执行AI代理的网络级政策;对于电子邮件工作流程,这意味着控制代理能够到达的终点,以及他们不能采取的行动。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
NemoClaw 在网络层面对 AI 代理实施策略控制。对于邮件工作流而言,这意味着严格限制代理可访问的端点,以及明确禁止其执行的操作——无论代理自身尝试执行何种行为。
这是一种纵深防御机制:即使邮件 MCP 服务器存在漏洞,或代理因幻觉生成了发送命令,网络策略也会在请求抵达 Microsoft 服务器之前将其拦截。
邮件代理可访问敏感数据(收件箱内容、联系人、日历),并能执行影响重大的操作(发送邮件、创建日历事件、修改收件箱规则)。在生产环境中,“代理行为良好”并非充分的安全模型。
未启用策略强制执行时的典型故障场景:
NemoClaw 通过管控网络层实现防护:代理进程无法访问任何未被显式允许的端点。
npm install -g nemoclaw,或从 GitHub 克隆源码email-agent-mcp,且已完成 Microsoft 365 OAuth 配置NemoClaw 内置一个经过审慎筛选的 Outlook 预设策略,仅开放 Microsoft 365 邮件功能所必需的最小端点集合。
openshell policy set nemoclaw-blueprint/policies/presets/outlook.yaml
该策略启用以下端点访问权限:
graph.microsoft.com — Microsoft Graph API(支持 GET、POST、PATCH 方法)login.microsoftonline.com — OAuth Token 刷新outlook.office365.com — Outlook 后端服务outlook.office.com — Outlook Web(用于草稿链接)所有连接均需使用 TLS 加密。该预设策略将阻断所有其他出站网络访问。
若需将 Outlook 预设纳入基线策略,请执行以下步骤:
nemoclaw-blueprint/policies/openclaw-sandbox.yamlnemoclaw onboard
该预设是 NemoClaw 内置的 9 个预设策略之一(包括:discord、docker、huggingface、jira、npm、outlook、pypi、slack、telegram)。
| 操作 | 端点 | 方法 |
|---|---|---|
| 列出/搜索邮件 | graph.microsoft.com/v1.0/me/messages |
GET |
| 读取邮件正文 | graph.microsoft.com/v1.0/me/messages/{id} |
GET |
| 创建草稿 | graph.microsoft.com/v1.0/me/messages |
POST |
| 更新草稿 | graph.microsoft.com/v1.0/me/messages/{id} |
PATCH |
| 列出文件夹 | graph.microsoft.com/v1.0/me/mailFolders |
GET |
| 创建文件夹 | graph.microsoft.com/v1.0/me/mailFolders |
POST |
| 移动邮件 | graph.microsoft.com/v1.0/me/messages/{id}/move |
POST |
| 列出日历事件 | graph.microsoft.com/v1.0/me/events |
GET |
| OAuth Token 刷新 | login.microsoftonline.com/*/oauth2/v2.0/token |
POST |
Outlook 预设策略允许向 Graph API 端点发起 POST 请求,其中包括发送端点(/me/sendMail)。如需进一步限制发送能力,请执行以下任一操作:
- host: graph.microsoft.com port: 443 tls: true methods: [GET, PATCH] # 移除 POST —— 将同时阻止发送、创建草稿、移动邮件等操作
对于大多数部署场景,MCP 层级的白名单已足够。自定义策略适用于对安全性要求极高的环境,以实现多重冗余防护(belt-and-suspenders)。
任何未在预设中明确定义的端点均被屏蔽。此举可有效防范:
生产环境下的邮件代理应采用多层防护机制:
| 层级 | 管控内容 | 工具 |
|---|---|---|
| 网络策略 | 代理进程可访问的端点范围 | NemoClaw |
| 发送白名单 | 代理可发送邮件的目标收件人 | email-agent-mcp 配置 |
| 草稿优先工作流 | 用户必须先审批,才可执行发送操作 | 代理技能 / MCP 设计 |
| 收件箱规则安全控制 | 禁止危险规则操作(如自动转发、删除) | 代理技能 / MCP 校验逻辑 |
每一层均针对不同类别的故障进行防护,单一层级无法独立提供充分安全保障。
应用预设策略后,请确认其已激活:
openshell policy list
测试被屏蔽的端点是否确实无法访问:
# 此命令应成功(属允许端点)
curl -s -o /dev/null -w "%{http_code}" https://graph.microsoft.com/v1.0/me
# 此命令应失败(属屏蔽端点)
curl -s -o /dev/null -w "%{http_code}" https://api.example.com/exfiltrate
这表明策略已正常生效。请检查 NemoClaw 日志中记录的具体被屏蔽端点。常见原因包括:
请确认 login.microsoftonline.com 已列入允许主机列表。若您使用的是自定义策略而非预设策略,请确保该登录端点同时允许 GET 和 POST 方法。
Outlook 预设策略覆盖核心邮件与日历端点。如需支持 Teams,请单独添加 Teams 预设策略,或将所需端点手动合并至当前策略中。
如本技能对您有所帮助,欢迎在 GitHub 上为我们点亮 Star:https://github.com/UseJunior/email-agent-mcp
在 ClawHub 上执行:clawhub star stevenobiajulu/nemoclaw-email-policy
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 133.9万人学习
共49课时 | 82.5万人学习