mcpField
M
m365-mail

m365-mail

github.com/probichaux生产力0109 次安装40 周前更新
代码仓库

关于 m365-mail

m365-mail 是通过 Microsoft Graph 管理 Microsoft 365 邮件的命令行工具,适合需要在终端或脚本中处理邮件的用户。它支持读取、搜索、发送和整理邮件,并提供文本与 JSON 输出。

主要功能

  1. 01筛选并列出收件箱邮件
  2. 02读取和搜索邮件
  3. 03发送文本或 HTML 邮件
  4. 04移动、删除和标记邮件
  5. 05提供文本与 JSON 输出

适用场景

  1. 01查看未读收件箱邮件
  2. 02按发件人或附件查找邮件
  3. 03向一个或多个收件人发邮件
  4. 04归档邮件或更新邮件状态

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/probichaux/clawdskills --skill m365-mail

安装后在 Claude Code 中输入/m365-mail确认已加载。

附带文件scripts/m365mailscripts/m365mail.py

详细介绍

Microsoft 365 Mail

通过 Microsoft Graph API 管理 Microsoft 365 邮件的 CLI 工具。

设置(一次性)

1. 注册 Entra ID 应用
  1. 前往 Entra ID 门户 → 应用注册 → 新注册
  2. 名称:m365mail-cli(或任意名称)
  3. 支持的帐户类型:“仅此组织目录中的帐户”
  4. 重定向 URI:留空(使用设备代码流)
  5. 点击“注册”
2. 配置 API 权限
  1. 在应用中 → API 权限 → 添加权限
  2. Microsoft Graph → 委托的权限
  3. 添加:Mail.ReadWrite、Mail.Send
  4. 点击“授予管理员同意”(或请管理员操作)
3. 启用公共客户端流
  1. 在应用中 → 身份验证
  2. 在“高级设置”下,将“允许公共客户端流”设为 是
  3. 保存
4. 记下 ID
  • 应用程序(客户端)ID:可在应用概述页面找到
  • 目录(租户)ID:可在应用概述页面找到
5. 安装和配置
# Install dependencies
pip install msal requests

# Make executable
chmod +x skills/m365-mail/scripts/m365mail.py

# Optional: symlink to PATH
ln -s $(pwd)/skills/m365-mail/scripts/m365mail.py /usr/local/bin/m365mail

# Configure
m365mail setup --client-id <YOUR_CLIENT_ID> --tenant-id <YOUR_TENANT_ID>

# Authenticate (opens browser for device code)
m365mail auth

命令

列出收件箱
m365mail inbox                    # Last 20 messages
m365mail inbox -n 50              # Last 50 messages
m365mail inbox -u                 # Unread only
m365mail inbox -v                 # With preview
m365mail inbox --json             # JSON output
阅读邮件
m365mail read <message_id>        # Full message
m365mail read <id> --max-length 500  # Truncate body
m365mail read <id> --json         # JSON output
搜索
m365mail search "quarterly report"      # Full-text search
m365mail search -f [email protected]     # From specific sender
m365mail search -u                      # Unread only
m365mail search -a                      # Has attachments
m365mail search "budget" -f [email protected] -u  # Combine filters
发送邮件
m365mail send --to [email protected] --subject "Hello" --body "Message body"
m365mail send --to [email protected] [email protected] --cc [email protected] --subject "Hi" --body "Text"
m365mail send --to [email protected] --subject "Report" --body-file report.txt
m365mail send --to [email protected] --subject "HTML" --body "<h1>Hi</h1>" --html
管理邮件
m365mail folders                  # List all folders
m365mail move <message_id> Archive    # Move to folder
m365mail move <message_id> "Deleted Items"
m365mail delete <message_id>      # Permanently delete
m365mail mark <message_id> --read     # Mark read
m365mail mark <message_id> --unread   # Mark unread

输出格式

  • 默认:易读的表格/文本
  • --json:机器可读的 JSON(用于程序化访问)
  • -v/--verbose:包含邮件预览

邮件 ID

邮件使用较长的 ID 标识,例如 AAMkAGI2...。命令接受:

  • 完整 ID
  • ID 前缀(前 8 个字符通常足以唯一标识)

收件箱/搜索输出会显示 [AAMkAGI2] 前缀,方便引用。

令牌存储

令牌缓存在 ~/.m365mail/:

  • config.json - 客户端/租户 ID
  • token_cache.json - OAuth 令牌(自动刷新)

故障排除

“No cached token”:运行 m365mail auth

权限被拒绝:确保已授予 Mail.ReadWrite 和 Mail.Send 权限(可能需要管理员同意)

令牌已过期:工具会自动刷新;如果问题仍然存在,请再次运行 m365mail auth

评论

支持 Markdown