邮件(SMTP)
通过 SMTP 把夜莺告警发送成带格式的 HTML 邮件,新人可按步骤直接完成配置。
概述
邮件通知媒介通过标准 SMTP 协议发送告警邮件——夜莺充当邮件客户端,连接到你提供的 SMTP 服务器,以 HTML 正文的形式把告警推送到收件人邮箱。
- 适用场景:内部公告、值班周知、需要留存记录的告警通知。
- 你需要准备:一个可用的 SMTP 账号(推荐用企业邮箱,不要用个人主力邮箱)、SMTP 服务器地址和端口。
- 整个配置分三步:①在夜莺新建邮件通知媒介(填 SMTP 参数) → ②给夜莺用户配置邮箱 → ③在通知规则里选择收件人。
与钉钉/飞书机器人不同,SMTP 账号密码配置在"通知媒介"里,通知规则里只选"把告警发给哪些用户/团队"——不需要在规则里重复填发件人信息。
第一步:在夜莺新建邮件通知媒介
-
登录夜莺 → 左侧菜单 通知 → 通知媒介。
-
在左侧类型面板中点击 邮件,进入新建页面(URL
/notification-channels/add?ident=email)。 -
填写基础配置 + SMTP 配置:

区块 字段 说明 基础配置 名称 例如 邮件,在通知规则里选媒介时看到的就是这个名字基础配置 启用 保持开启 基础配置 备注 可不填 SMTP 配置 服务器 SMTP 服务器地址,例如 smtp.163.com、smtp.exmail.qq.com、smtp.office365.comSMTP 配置 端口 常用端口 ① 25明文(不推荐)②465SSL ③587STARTTLSSMTP 配置 用户名 通常就是完整邮箱地址,如 alert@example.comSMTP 配置 密码 登录密码或授权码(163 / QQ / Gmail 等需要开启 SMTP 并用专用授权码,见下表) SMTP 配置 发件人 邮件里显示的 From,支持两种格式: alert@example.com或夜莺告警 <alert@example.com>SMTP 配置 跳过证书验证 默认关闭;如果 SMTP 服务器用了自签证书或证书有误,可以临时打开,生产环境建议保持关闭 SMTP 配置 批量发送 单次 SMTP 连接最多复用发几封邮件; 0表示每封都新建连接。默认0,没有大批量通知场景不用动 -
点击 保存。
常见邮箱服务商参数速查
| 服务商 | SMTP 服务器 | 推荐端口 | 密码 |
|---|---|---|---|
| 阿里企业邮箱 | smtp.qiye.aliyun.com |
465 | 邮箱登录密码 |
| 腾讯企业邮箱 | smtp.exmail.qq.com |
465 | 邮箱登录密码 |
| 网易 163 / 126 | smtp.163.com / smtp.126.com |
465 | 需要先开启"POP3/SMTP/IMAP",使用授权码 |
| QQ 邮箱 | smtp.qq.com |
465 | 在"账户 → POP3/IMAP/SMTP"里生成授权码 |
| Gmail | smtp.gmail.com |
587 | 需要开启两步验证并生成 App Password |
| Outlook / Microsoft 365 | smtp.office365.com |
587 | 登录密码或应用专用密码 |
第二步:给夜莺用户配置邮箱
邮件通知的收件人来自夜莺用户自己的"邮箱"属性。
- 左侧菜单 人员组织 → 用户管理,找到需要接收告警的用户。
- 点击用户名进入详情,填写 邮箱 字段,保存。
- 如果想按团队收件,去 团队管理 把这些用户加入一个团队(例如"运维值班组")。
第三步:在通知规则里选择收件人
-
左侧菜单 通知 → 通知规则 → 新增(或编辑已有规则)。
-
在"通知配置"区域:

- 通知媒介:选刚才创建的邮件媒介;
- 消息模板:选
Email(系统自带,含主题 + HTML 正文); - 接收人:支持多选;选中的用户会按其"邮箱"属性收件,没填邮箱的用户会被忽略;
- 接收团队:多选,团队内所有成员的邮箱都会被加入收件人;
- 适用级别 / 适用时段 / 适用标签:按需过滤要推送的事件。
-
保存后,点击"通知测试"发送一条测试邮件。正常情况下,选中用户的邮箱里会立刻收到一封主题为
Triggered: <告警规则名> {...tags...}的 HTML 邮件。
自带消息模板都包含什么
系统预置的 Email 模板会渲染出:
- 主题:
Triggered: 告警规则名 {tag=xx};事件恢复时自动变为Recovered: ...。 - 正文:带样式的 HTML 表格,包含告警级别、规则名、触发值、触发/恢复时间、标签、Target 标识等完整字段。
如果想改样式(公司 Logo、配色、签名等),去 通知 → 消息模板,复制一份 Email 模板并按 Go html/template 语法编辑即可,不需要改通知媒介。
常见问题
Q1:为什么一直 535 Authentication failed / SMTP Auth 失败?
A:99% 是账号密码问题:
- 163 / QQ / Gmail 等免费邮箱绝大多数不接受登录密码做 SMTP 认证,必须去邮箱网页端生成"授权码 / App Password“并用它当密码;
- 企业邮箱 确认账号是否开通了 SMTP 功能(部分默认关闭);
- 用户名是否需要带域名全路径。
Q2:dial tcp: i/o timeout 连不上 SMTP 服务器?
A:
- 检查夜莺所在服务器网络是否能出网到 SMTP 端口(
telnet smtp.163.com 465); - 很多公有云机房默认封禁 25 端口,请改用 465/587;
- 企业防火墙可能只放通内网邮件网关,问一下网管。
Q3:x509: certificate signed by unknown authority 证书报错?
A:SMTP 服务器用了自签或者内部 CA 的证书,可以在表单里打开”跳过证书验证"。生产环境不推荐长期开启,最好让运维把根证书装到服务器系统信任链里。
Q4:收件人收到邮件但显示乱码 / 没有样式?
A:默认模板是 text/html,少数邮件客户端(比如一些老的移动端)解析 HTML 能力弱。可以在 消息模板 里新建一份纯文本模板,在通知规则里选择它即可。
Q5:同一条告警给多个团队发了多份邮件怎么办?
A:在通知规则里只选一次接收人/团队即可——多个团队有重叠成员时,夜莺会自动去重,一封邮件里 To 只会出现一次。
Q6:想让告警邮件带截图?
A:夜莺默认模板未嵌入截图。若要在 HTML 邮件中嵌截图,需要:
- 告警规则里配置了仪表盘并开启截图;
- 自定义 Email 模板,在
content里通过<img src="{{$params.shot_url}}"/>或cid:引用截图。这属于进阶用法。
Q7:想发高优先级告警 / 指定 X-Priority?
A:目前 SMTP 通知媒介不支持自定义 SMTP Header,仅支持 From/To/Subject/Body。如需扩展,可以改用"回调(Callback)“媒介自行拼装。