使用 mail-cli 命令交互邮箱:读取、搜索、发送、回复、标记、移动、删除、管理文件夹、草稿和账户(通过 CLI)。
emailcli Skill. 每当您需要使用邮件- cli 命令行客户端与用户的电子邮件交互时, 请使用此技能
功能概述
emailcli Skill. 每当您需要使用邮件- cli 命令行客户端与用户的电子邮件交互时, 请使用此技能是一项面向实际任务的技能,主要用于@ @ label: count Format. all counts use email: professor format:.。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
核心要点
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
- 实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
使用与执行
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
结果检查与注意事项
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
emailcli 技能
当需要通过 mail-cli 命令行客户端与用户邮箱交互时,请使用此技能。
快速参考
# 安装(如尚未安装) npm install -g @laffy1309/emailcli # 命令 mail-cli list [--folder FOLDER] [--limit N] [--account EMAIL:PROVIDER] mail-cli read[--thread] [--download [dir]] mail-cli search " " [--account EMAIL:PROVIDER] mail-cli send --to --subject " " --body " " [--cc ] [--bcc ] [--attach ] [--save-draft] [--draft ] mail-cli reply --to [--cc ] mail-cli mark --read|--unread mail-cli mark --ids 1,2,3 --read|--unread # 批量操作 mail-cli move --folder " " mail-cli move --ids 1,2,3 --folder " " # 批量操作 mail-cli delete mail-cli delete --ids 1,2,3 # 批量操作 mail-cli folders [--account EMAIL:PROVIDER] mail-cli status mail-cli drafts --list|--delete mail-cli account list|add --provider gmail|outlook|remove --account EMAIL:PROVIDER|--all
账户格式
所有账户均采用 email:provider 格式:
- Gmail:
me@gmail.com:gmail - Outlook:
me@outlook.com:outlook
当存在多个账户时,需使用 --account EMAIL:PROVIDER 明确指定目标账户。
若未指定账户,CLI 将默认内部使用 default:gmail。
JSON 输出
所有命令均返回 JSON 格式输出,可通过程序解析:
成功响应:
{"ok": true}
{"id": "abc123", "from": "sender@example.com", "subject": "Hello", "date": "2024-01-01T00:00:00Z"}
[{"id": "1", "from": "a@example.com"}, {"id": "2", "from": "b@example.com"}]
{"id": "...", "saved": true} // --save-draft 的输出
{"removed": ["a@g.com:gmail", "b@outlook.com:outlook"]} // account remove --all 的输出
错误响应:
{"error": {"code": "NO_ACCOUNTS", "message": "No accounts configured. Run 'mail-cli account add --provider gmail' first."}}
{"error": {"code": "DRAFT_NOT_FOUND", "message": "Draft with ID 'xxx' not found"}}
{"error": {"code": "MISSING_FLAG", "message": "Either --account or --all is required"}}
批量操作部分失败:
{"ok": true, "failed": [{"id": "2", "error": {"code": "NOT_FOUND", "message": "Email not found"}}]}
命令模式
列出邮件
# 默认:最近 20 封收件箱邮件 mail-cli list # 指定文件夹(Gmail 使用方括号) mail-cli list --folder "[Gmail]/Sent" # 限制结果数量 mail-cli list --limit 50 # 指定账户 mail-cli list --account me@gmail.com:gmail
阅读邮件
# 按 ID 查看单封邮件(ID 可从 list 输出中获取) mail-cli read abc123 # 查看完整会话线程 mail-cli read thread-456 --thread # 阅读并下载附件至当前目录 mail-cli read abc123 --download # 阅读并下载附件至指定目录 mail-cli read abc123 --download ./attachments
搜索邮件
# Gmail 搜索语法 mail-cli search "from:foo subject:bar has:attachment" # Outlook KQL 语法 mail-cli search "from:foo subject:bar"
发送邮件
# 基础发送 mail-cli send --to recipient@example.com --subject "Hello" --body "Message" # 包含 CC/BCC mail-cli send --to recipient@example.com --cc other@example.com --bcc hidden@example.com --subject "Hello" --body "Message" # 从文件读取正文 mail-cli send --to recipient@example.com --subject "Hello" --body-file-path message.txt # 附加文件 mail-cli send --to recipient@example.com --subject "Hello" --body "Message" --attach file.pdf # 保存为草稿(不发送) mail-cli send --to recipient@example.com --subject "Hello" --body "Message" --save-draft # 加载并发送已有草稿 mail-cli send --draft draft-id-123 --subject "Updated Subject"
回复邮件
mail-cli reply--to sender@example.com mail-cli reply --to sender@example.com --cc other@example.com
标记邮件
# 单封邮件 mail-cli mark abc123 --read mail-cli mark abc123 --unread # 批量操作 —— ID 以逗号分隔(不可含空格) mail-cli mark --ids 1,2,3 --read
移动邮件
# 单封邮件 mail-cli move abc123 --folder "[Gmail]/Trash" # 批量操作 mail-cli move --ids 1,2,3 --folder "[Gmail]/Archive"
删除邮件
# 单封邮件(移入回收站) mail-cli delete abc123 # 批量操作 mail-cli delete --ids 1,2,3
文件夹操作
# 列出所有文件夹 mail-cli folders # 邮箱状态(各文件夹邮件数量) mail-cli status
草稿管理
# 列出所有已保存的草稿 mail-cli drafts --list # 按 ID 删除草稿 mail-cli drafts --delete draft-id-123
账户管理
# 添加账户 mail-cli account add --provider gmail mail-cli account add --provider outlook # 列出所有账户 mail-cli account list # 删除指定账户 mail-cli account remove --account me@gmail.com:gmail # 删除全部账户 mail-cli account remove --all
工作流
检查收件箱
- 运行
mail-cli list获取最新邮件列表 - 解析 JSON 输出 —— 每封邮件包含
id、from、subject、date字段 - 向用户呈现摘要信息
- 用户可按 ID 请求查看特定邮件
发送邮件
- 收集收件人、主题、正文(以及可选的 CC、附件)
- 构造命令,并确保参数正确转义
- 执行命令并检查响应是否为
{"ok": true}或含 error 字段 - 向用户报告成功或具体错误信息
保存草稿
- 撰写邮件但暂不发送
- 使用
--save-draft参数替代发送操作 - 输出
{"id": "...", "saved": true}中的id即为该草稿 ID,可用于后续操作
加载并编辑草稿
- 使用
mail-cli drafts --list列出所有草稿 - 使用
mail-cli send --draft加载指定草稿 - 通过命令行参数覆盖任意字段(CLI 参数优先级高于草稿原始内容)
- 成功发送后,对应草稿将自动删除
搜索并执行操作
- 使用合适的查询语法运行
mail-cli search - 向用户展示搜索结果
- 用户可基于返回的 ID 对邮件执行标记、移动或删除等操作
批量操作
- 获取 ID 列表(来自
list或search输出) - 使用
--ids 1,2,3格式(逗号分隔,不可含空格) - 检查响应中的
failed数组,识别部分失败项
下载附件
- 阅读邮件时添加
--download或--download - 附件将保存至指定目录(或当前目录)
- 输出中包含
downloads数组,其中每个元素含附件的文件名、路径及大小
错误处理
若收到错误响应,请按以下步骤处理:
- 提取
error.code和error.message - 向用户清晰说明问题
- 如适用,提供修复建议:
NO_ACCOUNTS:运行mail-cli account add --provider gmail|outlookNOT_FOUND:该消息 ID 不存在,或已被删除INVALID_CREDENTIALS:先运行mail-cli account remove,再运行mail-cli account add重新认证DRAFT_NOT_FOUND:该草稿 ID 不存在,或已被发送/删除MISSING_FLAG:缺少必需参数(例如对account remove命令,需指定--account或--all)CONFLICTING_FLAGS:不可同时使用--account和--all
重要说明
- 始终使用 JSON 解析输出 —— CLI 仅输出 JSON
- Gmail 文件夹名称含方括号:
[Gmail]/Sent、[Gmail]/Trash、[Gmail]/Archive - 从
list或search返回的消息 ID 均为字符串,请严格保留原样 - 批量操作 ID 必须以逗号分隔且不含空格:
--ids 1,2,3 - 回复操作必须同时提供消息 ID 和
--to参数(含收件人地址) - 未指定
--account时,命令默认使用首个可用账户 - 草稿存储于本地,跨会话持久化
--save-draft与--draft在同一命令中互斥
热门AI工具
相关专题
本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。
0
2026.11.06
围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。
0
2026.11.06
详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。
0
2026.11.06
DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。
0
2026.11.05
DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。
0
2026.11.05
本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。
0
2026.11.04
本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。
0
2026.11.04
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.8万人学习
共6课时 | 54.7万人学习
最新文章