应依次检查并配置imap/smtp连接、启用邮件事件监听、创建并绑定邮件模板、使用mail-cli调试、设置多邮箱协同策略。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您已部署 Hermes Agent 并希望实现邮件的自动收发与管理,但实际运行中出现无法拉取新邮件、发送失败或分类异常等问题,则可能是由于 IMAP/SMTP 配置错误、凭证失效、模板未绑定或事件监听未启用。以下是解决此问题的步骤:
一、配置 IMAP 与 SMTP 协议连接
IMAP 用于接收和同步邮箱内容,SMTP 用于发送邮件,二者需分别配置且均依赖准确的服务器地址、端口及认证方式。任一协议配置失败都将导致收发链路中断。
1、编辑 ~/.config/himalaya/config.toml 文件,定位 [backend.imap] 和 [backend.smtp] 区块。
2、在 [backend.imap] 中确认 host 值为对应服务商的 IMAP 地址,例如 Gmail 使用 imap.gmail.com,Outlook 使用 outlook.office365.com。
3、在 [backend.imap] 中确认 port 为 993,且 auth.cmd 能正确输出密码;在 [backend.smtp] 中确认 host 为 smtp.gmail.com 或 smtp-mail.outlook.com,port 为 587(STARTTLS)或 465(SSL)。
4、执行测试命令验证:运行 himalaya --debug list 检查 IMAP 连通性;运行 himalaya compose --to test@example.com --subject "test" --body "ok" --send 检查 SMTP 发送能力。
二、启用邮件事件监听与自动处理逻辑
Hermes Agent 默认不主动响应邮件事件,必须显式开启 email channel 的监听机制,并指定触发条件,否则即使连接正常,也不会执行自动回复、归档或转发等操作。
1、打开 ~/.hermes/config.yaml,找到 notifications → email 区块。
2、将 enabled 设置为 true,并确保 events 列表包含 new_mail、mail_sent 等所需事件类型。
3、在该区块内添加 rules 字段,定义匹配规则,例如:当 subject 包含 "[URGENT]" 时触发 high_priority 标签,或当 from 包含 "@company.com" 时自动归档至 "Work" 文件夹。
4、保存后重启 Hermes Agent 服务,使配置生效。
三、创建邮件模板并绑定至自动化流程
自动回复、批量通知或结构化摘要等功能均依赖预设邮件模板。模板需注册 ID 并通过环境变量或配置项显式引用,否则 Hermes Agent 将无法识别可用内容源。
1、登录 Hermes 管理界面,进入“通知模板”页面,点击“新建模板”,选择类型为 邮件。
2、填写主题与正文,支持 Markdown 语法;如需动态插入发件人姓名,可使用变量 {{.From.Name}}。
3、保存后复制生成的模板 ID(格式如 tmpl_8a3f9b2e),并写入 ~/.hermes/.env 文件:AUTO_REPLY_TEMPLATE_ID=tmpl_8a3f9b2e。
4、若需多场景响应,可创建多个模板并分别绑定至不同 rules 条件,例如 tmpl_autoack 绑定 new_mail,tmpl_followup 绑定 mail_sent。
四、使用 mail-cli 工具进行手动邮件管理
mail-cli 是 ClawEmail 提供的命令行工具,功能覆盖收发、筛选、移动、标记、删除等全部基础邮箱操作,可脱离 Hermes Agent 独立运行,适用于调试、批量处理或脚本集成。
1、确保已安装 mail-cli:运行 npm install -g @clawemail/mail-cli。
2、初始化配置:执行 mail-cli setup --provider gmail,按提示完成 OAuth 授权或凭据输入。
3、列出最近 10 封未读邮件:运行 mail-cli list --unread --limit 10。
4、将某封邮件移至指定文件夹:运行 mail-cli move --id "msg_a1b2c3" --folder "Archive"。
五、配置邮箱子账户与多邮箱协同策略
当用户拥有多个邮箱(如工作邮箱、个人邮箱、项目专用邮箱)时,Hermes Agent 支持统一纳管,但需为每个邮箱单独配置 backend 实例,并通过标签或路由规则区分处理逻辑。
1、在 ~/.config/himalaya/config.toml 中新增 [backend.imap."work"] 与 [backend.imap."personal"] 区块,分别填写对应凭据。
2、为每个 backend 设置 unique_id,例如 work = "imap://user@company.com",personal = "imap://user@gmail.com"。
3、在 ~/.hermes/config.yaml 的 email.rules 中添加基于 unique_id 的路由判断,例如:当 backend == "work" 且 subject 包含 "Invoice",则调用 invoice_processing_skill。
4、运行 himalaya --backend work list 或 himalaya --backend personal list 可分别拉取不同邮箱邮件,验证隔离性。











