将 Hermes Agent 用作电子邮件助手
通过 IMAP 和 SMTP 将 Hermes Agent 配置为电子邮件助手。涵盖应用专用密码、白名单安全、邮件线程、附件处理及托管服务方案。

为什么电子邮件是 AI 智能体被低估的交互界面
谈到在真实场景中部署 AI 智能体,Telegram、Slack 和 Discord 往往是讨论的焦点。电子邮件更古老、更低调,但它有一个聊天应用无法比拟的特性:地球上每台设备都原生支持它,而且你已有的所有工作流——工单、发票、告警、表单提交、供应商确认——最终都会落入收件箱。
将 Hermes Agent 用作电子邮件助手,可以把收件箱变成一段对话。你将一个邮件线程转发给智能体,它会读取完整上下文,并在同一线程中回复,使用的持久化记忆与它在 Telegram 或终端中使用的完全一致。收件方无需安装新客户端、调用 API 或额外安装任何应用。
本指南将手把手讲解具体配置:专用邮件账户、应用专用密码、Hermes 所需的 EMAIL_* 变量、防止陌生人入侵的白名单,以及让回复看起来像人类所写的邮件线程规则。如果你希望使用托管版本而非手动管理 IMAP 凭据,可在完成阅读后注册 Hermify。
电子邮件适配器的工作原理
Hermes 内置了一个基于 Python 标准库 imaplib、smtplib 和 email 模块构建的电子邮件网关。它不依赖任何额外包,也不经过第三方 SaaS 或消息队列。该适配器是一个轮询循环,具体流程如下:
- 通过 SSL 连接到你的 IMAP 服务器。
- 按可配置的时间间隔从收件箱中拉取
UNSEEN(未读)邮件。 - 将邮件正文(及允许的附件)作为用户消息传递给智能体运行时。
- 通过 SMTP 发送回复,并正确设置
In-Reply-To和References标头,确保邮件保持线程化。
由于它直接使用原生 IMAP 和 SMTP,因此兼容 Gmail、Outlook、Yahoo、Fastmail、ProtonMail Bridge、Migadu 以及任何开放标准端口的服务商。适配器本身不包含任何 Gmail 专有逻辑,这意味着你可以随时切换服务商,而无需改动智能体配置。

开始之前:始终使用专用账户
不要将 Hermes 指向你的个人邮箱。原因有三:
- IMAP 凭据以明文形式存储在
.env文件中。任何能读取该文件的人都能读取你在该邮箱中收到的所有邮件。 - 适配器在设计上对收件箱拥有完整读取权限。技能中的一个 bug 理论上可能将邮件标记为已读、删除草稿或转发内容。
- 冷启动、重试和时钟偏差可能导致重复回复。你不会希望这些内容出现在与 CEO 的邮件线程中。
请新建一个专用地址:[email protected]、[email protected] 或任何弃用无损的地址。然后通过 Gmail 过滤器或 Outlook 规则,将你真正希望智能体处理的邮件转发到该地址。这样可以在"智能体可操作的内容"和"其余所有邮件"之间建立明确的边界。
第 1 步:生成 Gmail 应用专用密码(或等效凭据)
如果你使用 Gmail,IMAP/SMTP 路径需要应用专用密码,而不是普通登录密码。Google 已于 2025 年 1 月移除了禁用 IMAP 的选项,因此 IMAP 默认开启,但"低安全性应用"已不再可用,OAuth 对于单个账户而言又过于繁琐。
操作流程:
- 在
myaccount.google.com/security开启两步验证。只有开启 2FA 后,应用专用密码选项才会出现。 - 访问
myaccount.google.com/apppasswords。 - 为"邮件"生成一个密码。Google 会返回一个由四组四位字符组成的 16 位字符串。
- 复制时去掉空格。空格仅用于视觉分隔,某些客户端遇到空格会报错。
对于 Outlook/Microsoft 365,等效操作位于 account.microsoft.com/security 的"应用密码"页面(同样需要先开启 2FA)。对于 Fastmail,在"设置 > 密码与安全"下生成每个应用独立的密码。对于自托管的 Postfix/Dovecot,直接使用你在配置邮箱时设置的 SMTP/IMAP 密码即可。
第 2 步:配置 Hermes 电子邮件变量
电子邮件适配器完全通过 EMAIL_* 环境变量进行配置。针对 Gmail 的最小可用配置如下:
# 身份信息
[email protected]
EMAIL_PASSWORD=abcd1234efgh5678 # 16 位应用专用密码,不含空格
# IMAP(接收)
EMAIL_IMAP_HOST=imap.gmail.com
EMAIL_IMAP_PORT=993 # SSL
# SMTP(发送)
EMAIL_SMTP_HOST=smtp.gmail.com
EMAIL_SMTP_PORT=587 # STARTTLS
# 轮询间隔
EMAIL_POLL_INTERVAL=15 # 秒
EMAIL_POLL_INTERVAL 决定适配器向 IMAP 请求未读邮件的频率。默认值 15 秒是一个合理的平衡点:足够低以保证响应及时,足够高以避免 Gmail 限流。如果你将其设置低于 5 秒,Google 最终会返回临时身份验证失败,你将花大量时间排查与密码毫无关系的"密码错误"问题。
将这些变量写入 .env(Hermes 启动时加载的文件),并执行 chmod 600 .env 以防止其他用户读取。如果你在 Docker 中运行 Hermes,请以只读方式挂载该文件,切勿将凭据烘焙到镜像中。
第 3 步:通过白名单锁定收件箱
这是整个配置中最重要的安全步骤,也是大多数教程跳过的一步。
默认情况下,监听电子邮件的 Hermes 智能体会回复所有发件人。如果你的地址是 [email protected],任何猜到、泄露或抓取到该字符串的人都可以向它发送指令。电子邮件是公开可寻址的,不存在 Telegram 的"用户必须先发起对话"这样的过滤机制。
Hermes 提供三种模式:
| 模式 | 行为 |
|---|---|
[email protected],[email protected] |
仅处理这些地址的邮件,其余邮件静默丢弃。 |
| 未设置 | 未知发件人将收到一次性配对码,须回复该码才能加入白名单。 |
EMAIL_ALLOW_ALL_USERS=true |
接受所有发件人。仅适用于从未公开的私有地址。 |
对于任何真实部署,请使用明确的白名单:
[email protected],[email protected]
将你自己以及允许驱动智能体的少数人员加入白名单。将白名单像对待 SSH authorized_keys 文件一样管理——条目精简、定期审查,并在可能的情况下纳入私有代码仓库进行版本控制。
第 4 步:邮件线程与附件
Hermes 回复时会依据 RFC 2822 设置 In-Reply-To 和 References 标头,并保留原始 Subject,仅添加一个 Re: 前缀(不会出现 Re: Re: Re: 叠加)。这使得回复能在 Gmail、Apple Mail、Outlook Web、Spark 和 Fastmail 中正确归入原始线程。部分旧版 Outlook 桌面客户端会忽略这些标头并开启新线程——这是客户端的问题,而非智能体的 bug。
附件支持双向处理:
- 入站: 适配器将附件保存至
~/.hermes/inbox/email/<message-id>/,智能体可通过文件系统工具读取。若启用了内置 PDF 技能,PDF 会被提取为文本;若所配置的服务商支持视觉能力,图片将直接传递给具备视觉理解能力的模型。 - 出站: 能够生成文件的技能可将文件作为附件添加到回复中。适配器会设置 multipart MIME 正文,使收件人同时看到文本回复和附件文件。
实际效果是:你可以将一份 40 页的合同转发给智能体,请它做摘要,并在同一线程中收到内嵌摘要的回复。配合 Hermes Agent 记忆与技能 中的持久化记忆,智能体三周后仍能记住这份合同,当你问"我们五月收到的那份 NDA 是什么"时,它会给出准确的回答。

第 5 步:端到端验证
五分钟快速冒烟测试:
- 使用新的
.env启动 Hermes。观察日志——第一次 IMAP 轮询应输出connected和idle行。如果看到535 5.7.8 Username and Password not accepted,说明你的应用专用密码有误或包含空格。 - 从你自己(已加入白名单)的地址向智能体发送一封普通邮件。主题:"ping",正文:"What can you do?"。
- 等待一个轮询间隔。回复应出现在同一线程中,主题为
Re: ping。 - 回复该邮件,提出一个追问。智能体应在上下文中包含上一轮对话内容,因为网关通过
Message-ID维护线程状态。 - 从未加入白名单的地址发送一封邮件,确认没有任何回复,并确认日志中显示发件人被丢弃的记录,而非静默成功。
五项全部通过,你的电子邮件助手即配置完成。
什么时候应该使用 AgentMail 而非原生 IMAP
原生 IMAP 适配器适合个人账户和小型团队。有一种场景更适合使用独立的收件箱:当你需要构建面向用户的产品,让终端用户向你的产品发送邮件、由智能体规模化处理时。针对这一路径,AgentMail MCP 服务器可为每个用户提供独立的结构化收件箱,无需触及你的真实域名。代价是引入了一个额外的供应商;收益是实现了用户级隔离,并提供了适合产品分析的干净 API。
其他所有场景——你自己的助手、运维邮箱、入站表单智能体、供应商确认分拣器——原生 IMAP/SMTP 配置更快,且完全免费。
或者,直接使用托管服务跳过所有步骤
上述每一步都是实实在在的工作。应用专用密码会在你轮换 2FA 时失效,IMAP 服务商偶尔会因"可疑活动"封锁全新登录,而运行在笔记本电脑上的单个轮询循环只要合盖就会停止。自托管 Hermes 部署的支持工单大多来自这一层:凭据、白名单和服务可用性。
Hermify 将 Hermes Agent 运行时作为托管服务提供。电子邮件、Telegram、Slack 和 Signal 均可通过控制台直接接入,凭据静态加密存储,轮询循环运行在不会休眠的基础设施上,智能体的记忆跨会话持久保存,无需你维护任何东西。如果你想要电子邮件接入能力而不想费心管理 IMAP,注册 Hermify 即可跳过第 1 步到第 5 步。如果你想对比电子邮件与其他接入方式的部署差异,请参阅 Telegram 部署指南——两者的权衡取舍非常相似。