讲师中心 微信公众号
AI工具推荐 视频效率加速

邮件管理器

Polar Sponsor
爱发电 赞助
.NET 9.0

收发和管理邮件,支持查看未读邮件、搜索邮件、下载附件、发送带附件的邮件,并提供交互式配置向导。兼容Gmail、Outlook、163.com、126.com、QQ邮箱等主流服务商。当用户需要收发邮件、查看收件箱、搜索特定邮件、管理附件,或提及配置邮箱时触发。

📦 通过 SkillHub 安装(推荐)

功能概述

📦 通过 SkillHub 安装(推荐):是一项面向实际任务的技能,主要用于安装后需重启 Gateway: openclaw gateway restart;🎯 触发方式(说什么能唤醒这个技能);

核心要点

  • 以下任一说法都能触发:;
  • "帮我查一下邮箱" / "看看有没有新邮件" / "查收件箱" / "收一下邮件";
  • "发一封邮件给 xxx" / "发送邮件" / "发邮件" / "发个通知";

使用与执行

"搜索一下 xxx 的邮件" /。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

📦 安装

📦 通过 SkillHub 安装(推荐):

skillhub install mail-agent-goose --dir ~/.openclaw/workspace/skills/

安装后需重启 Gateway:openclaw gateway restart

🎯 触发方式(说什么能唤醒这个技能)

以下任一说法都能触发:

"帮我查一下邮箱" / "看看有没有新邮件" / "查收件箱" / "收一下邮件" "发一封邮件给 xxx" / "发送邮件" / "发邮件" / "发个通知" "搜索一下 xxx 的邮件" / "找一下xxx发来的邮件" "下载邮件附件" / "把邮件里的文件下载下来" "配置邮箱" / "设置邮箱" / "我的邮箱怎么配置"

⚡ 快速开始

第一步:配置邮箱

cd ~/.openclaw/workspace/mail-agent-goose
bash setup.sh

交互式向导会引导你选择邮箱类型(Gmail/163/QQ 等),输入账号密码,自动生成 .env 文件。

或手动创建 .env:

# Gmail 示例
IMAP_HOST=imap.gmail.com
IMAP_PORT=993
IMAP_USER=your@gmail.com
IMAP_PASS=your_app_password
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your@gmail.com
SMTP_PASS=your_app_password
SMTP_FROM=your@gmail.com

⚠️ Gmail:不支持普通密码,必须用 App Password(16位)。开启两步验证后到这里生成:https://myaccount.google.com/apppasswords ⚠️ 163/126/QQ:用邮箱授权码,不是登录密码

第二步:试试收发

# 查看最近 5 封邮件
node imap.js check --limit 5

# 发一封测试邮件
node smtp.js test

⚠️ 能力边界(它做不到的事)

  • ❌ 不支持网页登录:必须开启邮箱的 IMAP/SMTP 功能
  • ❌ 不支持发送后删除:只能发送,不能删除对方收件箱里的邮件
  • ❌ 不支持定时发送:立即发送,不支持预约
  • ❌ 附件无大小保证:各服务商有限制(Gmail 25MB、163 50MB),附件过大会发送失败
  • ❌ 不支持批量个性化群发:可以群发,但不能像邮件营销工具那样每个收件人显示不同名字

📋 命令速查

收邮件

需求 命令 示例
查看最近邮件 node imap.js check node imap.js check --limit 10
只看未读邮件 node imap.js check --unseen node imap.js check --limit 20
最近 2 小时的新邮件 node imap.js check --recent 2h node imap.js check --recent 2h
查看邮件正文 node imap.js fetch node imap.js fetch 1234
搜索邮件 node imap.js search --from xxx node imap.js search --subject 订单
列出所有文件夹 node imap.js list-mailboxes —

发邮件

需求 命令 示例
发文本邮件 node smtp.js send --to x --subject x --body x node smtp.js send --to a@b.com --subject "你好" --body "内容"
发 HTML 邮件 node smtp.js send --html --body "

标题

"
用 --html 标志
发带附件 --attach 文件 --attach report.pdf
发给多人 --to "a@b.com,b@c.com" 逗号分隔

管理邮件

需求 命令 示例
下载附件 node imap.js download node imap.js download 1234
下载到指定目录 --dir ~/Downloads node imap.js download 1234 --dir ~/Downloads
只下某个文件 --file 文件名 node imap.js download 1234 --file report.pdf
标记已读 node imap.js mark-read node imap.js mark-read 1234 1235

📤 输出示例

node imap.js check --limit 3

[
  {
    "uid": 1234,
    "from": "zhangsan@example.com",
    "to": "me@example.com",
    "subject": "项目进度汇报",
    "date": "2026-07-14T09:30:00.000Z",
    "snippet": "各位好,本周进度如下:1. 前端页面已完成;2. 接口开发..."
  },
  {
    "uid": 1233,
    "from": "noreply@taobao.com",
    "to": "me@163.com",
    "subject": "【淘宝】您的订单已发货",
    "date": "2026-07-14T08:15:00.000Z",
    "snippet": "亲爱的用户,您的订单 #28475931 已发货,预计 3-5 天送达..."
  }
]

node imap.js fetch 1234

{
  "uid": 1234,
  "from": "zhangsan@example.com",
  "to": "me@example.com",
  "subject": "项目进度汇报",
  "date": "2026-07-14T09:30:00.000Z",
  "text": "各位好,本周进度如下:n1. 前端页面已完成n2. 接口开发完成 80%n请查收。",
  "html": "

各位好,本周进度如下:

  1. 前端页面已完成
  2. 接口开发完成80%
", "attachments": [ { "filename": "进度报告.pdf", "contentType": "application/pdf", "size": 204800 } ] }

node smtp.js send --to a@b.com --subject "测试" --body "你好"

{
  "success": true,
  "messageId": "",
  "response": "250 OK",
  "to": "a@b.com"
}

node smtp.js test

{
  "success": true,
  "message": "SMTP connection successful",
  "messageId": ""
}

🛠 完整命令参考

IMAP 命令

# 检查新邮件(默认 10 封,最新在前)
node imap.js check [--limit 10] [--mailbox INBOX] [--recent 2h] [--unseen]

# 根据 UID 获取邮件完整内容
node imap.js fetch  [--mailbox INBOX]

# 下载附件(全部或指定文件)
node imap.js download  [--mailbox INBOX] [--dir ] [--file ]

# 搜索邮件
node imap.js search [options]
  --unseen           仅未读
  --seen             仅已读
  --from      发件人包含
  --subject    主题包含
  --recent 

SMTP 命令

# 发送邮件
node smtp.js send --to  --subject  [options]

  必填:
    --to               收件人(多个逗号分隔)
    --subject           主题

  可选:
    --body              纯文本正文
    --html                    正文是 HTML(配合 --body 使用)
    --body-file         从文件读取正文
    --html-file         从 HTML 文件读取内容
    --cc               抄送
    --bcc              密送
    --attach            附件(多个逗号分隔)
    --from             覆盖默认发件人

# 测试连接(给自己发一封测试邮件)
node smtp.js test

常用邮件服务器

服务商 IMAP 主机 IMAP 端口 SMTP 主机 SMTP 端口
163.com imap.163.com 993 smtp.163.com 465
vip.163.com imap.vip.163.com 993 smtp.vip.163.com 465
126.com imap.126.com 993 smtp.126.com 465
QQ 邮箱 imap.qq.com 993 smtp.qq.com 587
Gmail imap.gmail.com 993 smtp.gmail.com 587
Outlook outlook.office365.com 993 smtp.office365.com 587

❓ 常见问题(FAQ)

连接与认证类

Q1: 报"连接超时"(ETIMEDOUT/ECONNREFUSED)

可能原因:IMAP/SMTP 服务器地址错误、端口错误、网络不通、服务器维护

排查步骤:

  1. 确认 .env 中的 IMAP_HOST / SMTP_HOST 地址正确(参考上方服务器表格)
  2. 测试网络连通性:telnet imap.qq.com 993 或 curl -v telnet://imap.gmail.com:993
  3. 确认邮箱服务商的 IMAP/SMTP 功能已在网页端开启
  4. 163/QQ 等国内邮箱有时需要等待 5-10 分钟才能激活服务
  5. 若公司/校园网限制外网 IMAP 端口,换用手机热点尝试

Q2: 报"认证失败"(Authentication failed/INVALID_CREDENTIALS)

可能原因:密码类型错误、授权码过期、账号拼写错误

Gmail 必做:

  1. Gmail 不支持普通密码,必须用 App Password(16位)
  2. 去 https://myaccount.google.com/apppasswords 生成(需先开启两步验证)
  3. 如果没有"生成App Password"选项 → 先去 https://myaccount.google.com/security 开启两步验证
  4. 用生成的 App Password 替换 .env 中的 IMAP_PASS 和 SMTP_PASS

163/126/QQ 必做:

  1. 登录网页邮箱 → 设置 → POP3/SMTP/IMAP → 开启 IMAP/SMTP
  2. 使用授权码而非登录密码(不是 QQ 登录密码!)
  3. 授权码可在邮箱设置页面重新生成
  4. 确认 IMAP_USER 填写的是完整邮箱地址(如 123456@qq.com,不是纯数字 QQ 号)

Q3: 163 邮箱报"IMAP ID failed"警告

这是正常现象(服务器不支持 IMAP ID 扩展),不影响使用,脚本会自动跳过继续执行。

Q4: Gmail 报"请用 App Password"但我明明用了 App Password

  1. 确认 App Password 填写正确(16位,无空格)
  2. App Password 生成后只能看一次,如丢失需重新生成
  3. 确认 IMAP_USER 是 Gmail 地址格式(如 xxx@gmail.com)
  4. 如最近更改了 Google 账号密码,需重新生成 App Password

邮件收发类

Q5: 查邮件成功但返回空列表

  1. 确认 IMAP/SMTP 已开启:登录邮箱网页 → 设置 → 查看是否已启用 IMAP
  2. 检查是否在正确的文件夹(默认是 INBOX),其他文件夹用 --mailbox 文件夹名
  3. Gmail:Settings → See all settings → Forwarding and POP/IMAP → IMAP Access → Enable

Q6: 附件下载失败(ALLOWED_WRITE_DIRS)

  1. 在 .env 中添加允许写入的目录:ALLOWED_WRITE_DIRS=~/Downloads
  2. 多个目录用逗号分隔:ALLOWED_WRITE_DIRS=~/Downloads,~/Documents
  3. 指定下载目录:node imap.js download 1234 --dir ~/Downloads
  4. 确认目录存在且有写入权限

Q7: 发邮件报"附件太大"

各服务商单封邮件附件限制:

  • Gmail:25MB
  • 163/126:50MB
  • QQ 邮箱:50MB

解决方案:压缩大文件(PDF/图片用压缩工具),或改用网盘分享链接

Q8: 发送成功但收件人没收到

  1. 检查收件人地址是否正确
  2. 查看发件箱确认发送记录
  3. 检查垃圾邮件文件夹
  4. Gmail 可能因 SPF/DKIM 未配置被对方服务器拒收
  5. 163/QQ 可能拦截非发件人本人账号的邮件,发送地址需与 SMTP_USER 一致

配置与工具类

Q9: 163/QQ 邮件收不到或发不出去

  1. 确认已在邮箱网页端开启 IMAP/SMTP 服务
  2. 用授权码(非登录密码)填入 IMAP_PASS 和 SMTP_PASS
  3. 163 邮箱发送需确保发件人与登录账号一致
  4. 首次开启服务后需等待 5-30 分钟生效

Q10: 命令行参数写错了没提示

感谢反馈!当前版本的参数校验已在优化中。传错参数时会直接透传给底层 CLI,请参考上方「命令速查」表格确保参数正确。

Q11: 网络波动后命令直接失败,能否自动重试?

未来版本将加入自动重试机制。当前请手动重试命令,或检查网络环境后再次执行。

🔗 关联技能

本技能可与以下技能联动使用:

🎨 html-mail-goose(邮件模板生成)

用 html-mail-goose 生成 HTML 邮件模板后,直接用 mail-agent 发送:

# 1. 生成模板
python html-mail-goose/generate_email_template.py --input welcome.json --output welcome.html

# 2. 发送 HTML 邮件
node mail-agent-goose/smtp.js send --to user@example.com 
  --subject "欢迎加入 MyCompany" 
  --html-file ./welcome.html

html-mail-goose 安装:

skillhub install html-mail-goose --dir ~/.openclaw/workspace/skills/

🌐 goosehost(静态网站托管)

把文件部署到 GooseHost,在邮件里附上预览链接:

# 1. 部署
goosehost deploy ./report.html --slug 月度报告

# 2. 发邮件附链接
node mail-agent-goose/smtp.js send 
  --to user@example.com 
  --subject "你的月度报告" 
  --body "报告已生成:https://page.goose.cc.cd/s/月度报告"

goosehost 安装:

skillhub install goosehost --dir ~/.openclaw/workspace/skills/
openclaw gateway restart
目录

热门AI工具

更多
咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

相关专题

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

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

0

2026.11.04

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

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

0

2026.11.04

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

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

0

2026.11.04

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

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

0

2026.11.04

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

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

0

2026.11.04

XORM框架零基础入门教程
XORM框架零基础入门教程

本专题梳理XORM框架的入门路径,从框架定位、依赖安装、连接数据库到跑通第一个增删改查示例,讲清Engine初始化、日志开启与项目目录规划,并对比GORM等同类ORM的差异,帮助Go开发者建立整体认知。

0

2026.11.04

Docker Desktop怎么设置端口映射
Docker Desktop怎么设置端口映射

本专题聚焦Docker Desktop容器端口映射与访问配置,整理从创建容器、设置端口绑定到验证本地服务访问的操作流程。针对端口被占用、映射配置错误、容器服务无法访问等情况,也提供相应的检查方向,方便用户完成端口配置。

0

2026.11.03

Docker Desktop镜像构建教程
Docker Desktop镜像构建教程

想使用Docker Desktop将本地项目构建成Docker镜像?本专题围绕镜像构建的实际操作展开,介绍Dockerfile编写、构建命令使用、镜像标签设置和构建日志查看等内容,同时整理镜像无法生成、依赖安装失败及构建缓存异常等问题的排查思路。

0

2026.11.03

Docker Desktop容器创建指南
Docker Desktop容器创建指南

本专题聚焦Docker Desktop容器创建与运行配置,介绍通过本地镜像或远程镜像创建容器的方法,以及容器启动、终端访问、日志查看和基础管理等操作。针对端口冲突、参数配置不当、容器无法启动等情况,也整理了相应的排查方向。

0

2026.11.03

热门下载

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

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn