钉钉邮箱 Skill
通过 mcporter 调用钉钉邮箱 MCP 服务,实现邮箱查询、邮件搜索、邮件查看和发送功能。
前置要求
- 1. 安装 mcporter
CODEBLOCK0
- 2. 钉钉企业邮箱账号
配置步骤
1. 获取钉钉邮箱 MCP Token
- 1. 登录钉钉企业邮箱网页版
- 进入 设置 → MCP服务
- 点击 生成Token
- 复制生成的 JSON配置 中的
url 字段值(StreamableHttp URL)
2. 添加 mcporter 配置
使用以下命令添加钉钉邮箱的 MCP Server:
CODEBLOCK1
将 <StreamableHttp URL> 替换为从钉钉邮箱获取的实际 URL。
3. 验证配置
CODEBLOCK2
应该能看到 dingtalk-mailbox 服务器及其提供的工具列表。
可用功能
1. 查询可用邮箱列表 (listusermailboxes)
查询当前钉钉用户可以使用的邮箱地址列表。
参数: 无
示例:
CODEBLOCK3
返回示例:
CODEBLOCK4
2. 搜索邮件 (search_emails)
使用类似 KQL 的查询表达式搜索邮件。支持分页、排序和字段选择。
参数:
- -
email (string, 必需): 搜索目标邮箱地址 - INLINECODE4 (string, 必需): KQL 查询表达式
- INLINECODE5 (string, 必需): 每次返回的最大结果数量(1-100)
- INLINECODE6 (string, 可选): 分页游标
示例:
CODEBLOCK5
支持的查询字段:
| 字段 | 说明 | 示例 |
|---|
| INLINECODE7 | 日期 | INLINECODE8 |
| INLINECODE9 |
文件夹ID |
folderId:2 (收件箱),
folderId:1 (已发送) |
|
isRead | 是否已读 |
isRead:true,
isRead:false |
|
hasAttachments | 是否有附件 |
hasAttachments:true |
|
subject | 主题 |
subject:\"紧急\" |
|
from | 发件人 |
from:\"alice\" |
|
to | 收件人 |
to:\"bob@example.com\" |
文件夹ID对照:
- -
1 - 已发送 - INLINECODE24 - 收件箱
- INLINECODE25 - 垃圾邮件
- INLINECODE26 - 草稿
- INLINECODE27 - 已删除
3. 获取邮件详情 (getemailbymessageid)
根据邮件ID获取完整的邮件内容,包括正文。
参数:
- -
email (string, 必需): 邮件所属的邮箱地址 - INLINECODE29 (string, 必需): 邮件ID(通过搜索获得)
示例:
CODEBLOCK6
4. 发送邮件 (send_email)
使用指定的邮箱地址作为发件人发送邮件。
参数:
- -
from (string, 必需): 发信邮箱地址 - INLINECODE31 (string[], 必需): 收件人邮箱地址列表
- INLINECODE32 (string, 必需): 邮件主题
- INLINECODE33 (string, 必需): Markdown 格式的邮件正文
- INLINECODE34 (string[], 可选): 抄送人邮箱地址列表
示例:
CODEBLOCK7
常见使用场景
1. 查看今天的邮件
CODEBLOCK8
2. 查找未读邮件
CODEBLOCK9
3. 查找特定主题的邮件
CODEBLOCK10
4. 批量发送邮件
CODEBLOCK11
常见问题
无法连接到 MCP 服务器
请确认:
- 1. Token 是否有效
- URL 是否正确复制
- 网络连接是否正常
查看完整工具 schema
CODEBLOCK12
测试结果
| 功能 | 状态 | 说明 |
|---|
| listusermailboxes | ✅ 已测试 | 成功获取邮箱列表 |
| search_emails |
✅ 已测试 | 成功搜索收件箱邮件 |
| get
emailby
messageid | ✅ 已测试 | 成功获取邮件详情 |
| send_email | ✅ 已测试 | 成功发送测试邮件 |
参考资料
License
MIT
钉钉邮箱 Skill
通过 mcporter 调用钉钉邮箱 MCP 服务,实现邮箱查询、邮件搜索、邮件查看和发送功能。
前置要求
- 1. 安装 mcporter
bash
npm install -g mcporter
- 2. 钉钉企业邮箱账号
配置步骤
1. 获取钉钉邮箱 MCP Token
- 1. 登录钉钉企业邮箱网页版
- 进入 设置 → MCP服务
- 点击 生成Token
- 复制生成的 JSON配置 中的 url 字段值(StreamableHttp URL)
2. 添加 mcporter 配置
使用以下命令添加钉钉邮箱的 MCP Server:
bash
mcporter config add dingtalk-mailbox --url --config ~/.mcporter/mcporter.json
将 替换为从钉钉邮箱获取的实际 URL。
3. 验证配置
bash
mcporter list
应该能看到 dingtalk-mailbox 服务器及其提供的工具列表。
可用功能
1. 查询可用邮箱列表 (listusermailboxes)
查询当前钉钉用户可以使用的邮箱地址列表。
参数: 无
示例:
bash
mcporter call dingtalk-mailbox.listusermailboxes
返回示例:
json
{
emailAccounts: [
{
orgName: 示例公司,
type: ORG,
email: user@example.com
}
],
success: true
}
2. 搜索邮件 (search_emails)
使用类似 KQL 的查询表达式搜索邮件。支持分页、排序和字段选择。
参数:
- - email (string, 必需): 搜索目标邮箱地址
- query (string, 必需): KQL 查询表达式
- size (string, 必需): 每次返回的最大结果数量(1-100)
- cursor (string, 可选): 分页游标
示例:
bash
搜索收件箱邮件
mcporter call dingtalk-mailbox.search_emails(email:\user@example.com\, query:\folderId:2\, size:\5\)
搜索未读邮件
mcporter call dingtalk-mailbox.search_emails(email:\user@example.com\, query:\isRead:false\, size:\10\)
搜索来自特定发件人的邮件
mcporter call dingtalk-mailbox.search_emails(email:\user@example.com\, query:\from:sender@example.com\, size:\5\)
支持的查询字段:
| 字段 | 说明 | 示例 |
|---|
| date | 日期 | date>2025-01-01T00:00:00Z |
| folderId |
文件夹ID | folderId:2 (收件箱), folderId:1 (已发送) |
| isRead | 是否已读 | isRead:true, isRead:false |
| hasAttachments | 是否有附件 | hasAttachments:true |
| subject | 主题 | subject:\紧急\ |
| from | 发件人 | from:\alice\ |
| to | 收件人 | to:\bob@example.com\ |
文件夹ID对照:
- - 1 - 已发送
- 2 - 收件箱
- 3 - 垃圾邮件
- 5 - 草稿
- 6 - 已删除
3. 获取邮件详情 (getemailbymessageid)
根据邮件ID获取完整的邮件内容,包括正文。
参数:
- - email (string, 必需): 邮件所属的邮箱地址
- messageId (string, 必需): 邮件ID(通过搜索获得)
示例:
bash
mcporter call dingtalk-mailbox.getemailbymessageid(email:\user@example.com\, messageId:\<邮件ID>\)
4. 发送邮件 (send_email)
使用指定的邮箱地址作为发件人发送邮件。
参数:
- - from (string, 必需): 发信邮箱地址
- toRecipients (string[], 必需): 收件人邮箱地址列表
- subject (string, 必需): 邮件主题
- body (string, 必需): Markdown 格式的邮件正文
- ccRecipients (string[], 可选): 抄送人邮箱地址列表
示例:
bash
发送简单邮件
mcporter call dingtalk-mailbox.send_email(from:\user@example.com\, toRecipients:[\to@example.com\], subject:\会议通知\, body:\明天下午开会\)
发送带抄送的邮件
mcporter call dingtalk-mailbox.send_email(from:\user@example.com\, toRecipients:[\to@example.com\], ccRecipients:[\cc@example.com\], subject:\会议通知\, body:\## 会议通知\n\n明天下午2点在301会议室开会。\)
常见使用场景
1. 查看今天的邮件
bash
mcporter call dingtalk-mailbox.search_emails(email:\user@example.com\, query:\date>2025-03-27T00:00:00Z AND folderId:2\, size:\20\)
2. 查找未读邮件
bash
mcporter call dingtalk-mailbox.search_emails(email:\user@example.com\, query:\isRead:false AND folderId:2\, size:\10\)
3. 查找特定主题的邮件
bash
mcporter call dingtalk-mailbox.search_emails(email:\user@example.com\, query:\subject:\项目通知\\, size:\10\)
4. 批量发送邮件
bash
mcporter call dingtalk-mailbox.send_email(from:\user@example.com\, toRecipients:[\a@example.com\, \b@example.com\], subject:\通知\, body:\各位同事:\n\n请注意查收附件。\n\n谢谢!\)
常见问题
无法连接到 MCP 服务器
请确认:
- 1. Token 是否有效
- URL 是否正确复制
- 网络连接是否正常
查看完整工具 schema
bash
mcporter list dingtalk-mailbox --schema
测试结果
| 功能 | 状态 | 说明 |
|---|
| listusermailboxes | ✅ 已测试 | 成功获取邮箱列表 |
| search_emails |
✅ 已测试 | 成功搜索收件箱邮件 |
| get
emailby
messageid | ✅ 已测试 | 成功获取邮件详情 |
| send_email | ✅ 已测试 | 成功发送测试邮件 |
参考资料
License
MIT