使用 mail-cli 命令交互邮箱:读取、搜索、发送、回复、标记、移动、删除、管理文件夹、草稿和账户(通过 CLI)。
emailcli Skill. 每当您需要使用邮件- cli 命令行客户端与用户的电子邮件交互时, 请使用此技能是一项面向实际任务的技能,主要用于@ @ label: count Format. all counts use email: professor format:.。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
当需要通过 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 格式:
me@gmail.com:gmailme@outlook.com:outlook当存在多个账户时,需使用 --account EMAIL:PROVIDER 明确指定目标账户。
若未指定账户,CLI 将默认内部使用 default:gmail。
所有命令均返回 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 获取最新邮件列表id、from、subject、date 字段{"ok": true} 或含 error 字段--save-draft 参数替代发送操作{"id": "...", "saved": true} 中的 id 即为该草稿 ID,可用于后续操作mail-cli drafts --list 列出所有草稿mail-cli send --draft 加载指定草稿mail-cli searchlist 或 search 输出)--ids 1,2,3 格式(逗号分隔,不可含空格)failed 数组,识别部分失败项--download 或 --download downloads 数组,其中每个元素含附件的文件名、路径及大小若收到错误响应,请按以下步骤处理:
error.code 和 error.messageNO_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[Gmail]/Sent、[Gmail]/Trash、[Gmail]/Archivelist 或 search 返回的消息 ID 均为字符串,请严格保留原样--ids 1,2,3--to 参数(含收件人地址)--account 时,命令默认使用首个可用账户--save-draft 与 --draft 在同一命令中互斥相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章