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

參考資料

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