用途
Outlook Mail 用于管理用户 Outlook 邮箱中的邮件,通过配套的 outlook-mail 命令行工具(CLI)完成读取、搜索、发送、回复和删除等操作。
主要能力
该技能提供以下核心子命令:
- disconnect:断开连接。
- list:列出邮件,支持
--page-size、--unread、--page-token、--folder等选项。 - get:获取单封邮件的完整内容,需传入消息 ID。
- search:按关键词搜索邮件,支持
--folder、--page-size等选项。 - send:发送邮件,支持多个收件人(
--to)、抄送(--cc)、主题(--subject)、正文(--body)以及附件(--attachment)。 - reply:回复邮件,支持
--body和--reply-all(全部回复)。 - delete:删除邮件,将其移至“已删除邮件”文件夹,可恢复,并非永久删除。
- mark-read / mark-unread:标记邮件为已读或未读。
所有命令均遵循 JSON 输出契约,返回结构化字段,例如 list/search 返回 ok、count、next_page_token、total_messages、retrieved_at 以及 messages[](含 id、subject、from、to、date、message_received_at、preview、is_read、has_attachments);get 返回 message 对象(含 body、body_type 等);send/reply/delete/mark-read/mark-unread 返回 ok、action 及相应标识。
使用方式
通过 exec 运行 outlook-mail <subcommand> [options]。例如:
- 列出邮件:
outlook-mail list --page-size 10 - 搜索邮件:
outlook-mail search "query" --folder sentitems - 获取单封邮件:
outlook-mail get "<MESSAGE_ID>" - 发送邮件:
outlook-mail send --to alice@example.com --subject "Hello" --body "Hi ..." - 回复邮件:
outlook-mail reply "<MESSAGE_ID>" --body "Thanks for the update!" - 删除邮件:
outlook-mail delete "<MESSAGE_ID>"
认证方面,使用 outlook-mail --status 查看连接器状态和管理链接。如需连接或重新连接,将返回的 URL 替换 <connect_url> 后,以 Markdown 链接形式分享:[Connect Outlook Mail](<connect_url>)。如需断开,运行 outlook-mail disconnect,若返回 disconnect_url,同样以 Markdown 链接形式分享:[Disconnect Outlook Mail](<disconnect_url>)。切勿打印令牌、Cookie 或连接器密钥。
适用场景
适用于需要通过命令行自动化处理 Outlook 邮件的场景,例如批量浏览、定向搜索、发送通知、回复邮件、整理收件箱(标记已读/未读、删除)等。
限制与注意事项
- 消息 ID 为不透明的 Graph 值,应复用 list 或 search 返回的精确 id。
- 发送前需确认收件人、主题和正文;回复前需确认回复正文及是否使用
--reply-all。 - delete 将邮件移至“已删除邮件”文件夹,可恢复,不应描述为永久或不可恢复。
- 对于邮箱摘要请求,默认排除可能的垃圾邮件、钓鱼邮件或无关的批量推广邮件,除非用户明确要求。
- 若 CLI 报告认证失败或断开状态,应停止并通过
--status连接流程引导用户后重试。 - 不得在用户可见文本中暴露原始 Graph 标识符(消息 id、会话 id)或其他内部响应字段(change keys、@odata 字段、分页令牌、原始 JSON),仅在内部用于串联后续命令。
- 兼容性日期字段为 Outlook 的邮件接收时间,展示时优先使用
message_received_at.user_local;它并非邮件内所述事件的时间,不得据此推断投递、支付、行程、会议等事件时间。