关于 m365-mail
m365-mail 是通过 Microsoft Graph 管理 Microsoft 365 邮件的命令行工具,适合需要在终端或脚本中处理邮件的用户。它支持读取、搜索、发送和整理邮件,并提供文本与 JSON 输出。
主要功能
- 01筛选并列出收件箱邮件
- 02读取和搜索邮件
- 03发送文本或 HTML 邮件
- 04移动、删除和标记邮件
- 05提供文本与 JSON 输出
适用场景
- 01查看未读收件箱邮件
- 02按发件人或附件查找邮件
- 03向一个或多个收件人发邮件
- 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 应用
- 前往 Entra ID 门户 → 应用注册 → 新注册
- 名称:
m365mail-cli(或任意名称) - 支持的帐户类型:“仅此组织目录中的帐户”
- 重定向 URI:留空(使用设备代码流)
- 点击“注册”
2. 配置 API 权限
- 在应用中 → API 权限 → 添加权限
- Microsoft Graph → 委托的权限
- 添加:
Mail.ReadWrite、Mail.Send - 点击“授予管理员同意”(或请管理员操作)
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- 客户端/租户 IDtoken_cache.json- OAuth 令牌(自动刷新)
故障排除
“No cached token”:运行 m365mail auth
权限被拒绝:确保已授予 Mail.ReadWrite 和 Mail.Send 权限(可能需要管理员同意)
令牌已过期:工具会自动刷新;如果问题仍然存在,请再次运行 m365mail auth
评论
支持 Markdown