邮件(SMTP)

通过 SMTP 把夜莺告警发送成带格式的 HTML 邮件,新人可按步骤直接完成配置。

概述

邮件通知媒介通过标准 SMTP 协议发送告警邮件——夜莺充当邮件客户端,连接到你提供的 SMTP 服务器,以 HTML 正文的形式把告警推送到收件人邮箱。

  • 适用场景:内部公告、值班周知、需要留存记录的告警通知。
  • 你需要准备:一个可用的 SMTP 账号(推荐用企业邮箱,不要用个人主力邮箱)、SMTP 服务器地址和端口。
  • 整个配置分三步:①在夜莺新建邮件通知媒介(填 SMTP 参数) → ②给夜莺用户配置邮箱 → ③在通知规则里选择收件人

与钉钉/飞书机器人不同,SMTP 账号密码配置在"通知媒介"里,通知规则里只选"把告警发给哪些用户/团队"——不需要在规则里重复填发件人信息。

第一步:在夜莺新建邮件通知媒介

  1. 登录夜莺 → 左侧菜单 通知 → 通知媒介

  2. 在左侧类型面板中点击 邮件,进入新建页面(URL /notification-channels/add?ident=email)。

  3. 填写基础配置 + SMTP 配置:

    邮件通知媒介表单

    区块 字段 说明
    基础配置 名称 例如 邮件,在通知规则里选媒介时看到的就是这个名字
    基础配置 启用 保持开启
    基础配置 备注 可不填
    SMTP 配置 服务器 SMTP 服务器地址,例如 smtp.163.comsmtp.exmail.qq.comsmtp.office365.com
    SMTP 配置 端口 常用端口 ①25 明文(不推荐)②465 SSL ③587 STARTTLS
    SMTP 配置 用户名 通常就是完整邮箱地址,如 alert@example.com
    SMTP 配置 密码 登录密码或授权码(163 / QQ / Gmail 等需要开启 SMTP 并用专用授权码,见下表)
    SMTP 配置 发件人 邮件里显示的 From,支持两种格式:alert@example.com夜莺告警 <alert@example.com>
    SMTP 配置 跳过证书验证 默认关闭;如果 SMTP 服务器用了自签证书或证书有误,可以临时打开,生产环境建议保持关闭
    SMTP 配置 批量发送 单次 SMTP 连接最多复用发几封邮件;0 表示每封都新建连接。默认 0,没有大批量通知场景不用动
  4. 点击 保存

常见邮箱服务商参数速查

服务商 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 登录密码或应用专用密码

第二步:给夜莺用户配置邮箱

邮件通知的收件人来自夜莺用户自己的"邮箱"属性

  1. 左侧菜单 人员组织 → 用户管理,找到需要接收告警的用户。
  2. 点击用户名进入详情,填写 邮箱 字段,保存。
  3. 如果想按团队收件,去 团队管理 把这些用户加入一个团队(例如"运维值班组")。

第三步:在通知规则里选择收件人

  1. 左侧菜单 通知 → 通知规则 → 新增(或编辑已有规则)。

  2. 在"通知配置"区域:

    邮件通知规则配置

    • 通知媒介:选刚才创建的邮件媒介;
    • 消息模板:选 Email(系统自带,含主题 + HTML 正文);
    • 接收人:支持多选;选中的用户会按其"邮箱"属性收件,没填邮箱的用户会被忽略;
    • 接收团队:多选,团队内所有成员的邮箱都会被加入收件人;
    • 适用级别 / 适用时段 / 适用标签:按需过滤要推送的事件。
  3. 保存后,点击"通知测试"发送一条测试邮件。正常情况下,选中用户的邮箱里会立刻收到一封主题为 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)“媒介自行拼装。

参考资料

更新时间 2026-04-25

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云