透過 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)」媒介自行組裝。