Manage Email

Polar Sponsor
爱发电 赞助
.NET 9.0

使用 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

工作流

检查收件箱

  1. 运行 mail-cli list 获取最新邮件列表
  2. 解析 JSON 输出 —— 每封邮件包含 id、from、subject、date 字段
  3. 向用户呈现摘要信息
  4. 用户可按 ID 请求查看特定邮件

发送邮件

  1. 收集收件人、主题、正文(以及可选的 CC、附件)
  2. 构造命令,并确保参数正确转义
  3. 执行命令并检查响应是否为 {"ok": true} 或含 error 字段
  4. 向用户报告成功或具体错误信息

保存草稿

  1. 撰写邮件但暂不发送
  2. 使用 --save-draft 参数替代发送操作
  3. 输出 {"id": "...", "saved": true} 中的 id 即为该草稿 ID,可用于后续操作

加载并编辑草稿

  1. 使用 mail-cli drafts --list 列出所有草稿
  2. 使用 mail-cli send --draft 加载指定草稿
  3. 通过命令行参数覆盖任意字段(CLI 参数优先级高于草稿原始内容)
  4. 成功发送后,对应草稿将自动删除

搜索并执行操作

  1. 使用合适的查询语法运行 mail-cli search
  2. 向用户展示搜索结果
  3. 用户可基于返回的 ID 对邮件执行标记、移动或删除等操作

批量操作

  1. 获取 ID 列表(来自 list 或 search 输出)
  2. 使用 --ids 1,2,3 格式(逗号分隔,不可含空格)
  3. 检查响应中的 failed 数组,识别部分失败项

下载附件

  1. 阅读邮件时添加 --download 或 --download
  2. 附件将保存至指定目录(或当前目录)
  3. 输出中包含 downloads 数组,其中每个元素含附件的文件名、路径及大小

错误处理

若收到错误响应,请按以下步骤处理:

  1. 提取 error.code 和 error.message
  2. 向用户清晰说明问题
  3. 如适用,提供修复建议:
    • NO_ACCOUNTS:运行 mail-cli account add --provider gmail|outlook
    • NOT_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 在同一命令中互斥

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习