MailVSR MailVSR 三分鐘搞定你的企業網站

SMTP日誌

SMTP日誌是郵件伺服器(Postfix)的通訊記錄,內容涵蓋信件如何進來、如何排入佇列、投遞到哪裡,以及認證與退信的原因。它是排查「信寄不出去/對方沒收到/被退信/有人偷用帳號寄信」時第一個要看的地方。收信端(IMAP/POP3)的記錄請看「IMAP日誌」。

什麼時候會用到這一頁:

  • 使用者說「我寄的信對方沒收到」
  • 使用者收到退信(bounce),想知道退信原因
  • 懷疑某個帳號被盜用大量寄信(帳號被當跳板)
  • 要確認外部寄來的信有沒有進到伺服器,或在哪一步被拒
  • 要追查某封信的完整旅程(用佇列編號串起所有相關記錄)

記錄的內容

這一頁讀取的是 /var/log/mail.log。常見的記錄類型包括:

  • 連線與交談:來源 IP 連入、EHLO、STARTTLS 等 SMTP 交談過程;連線階段就被拒的信件會出現 NOQUEUE(代表信還沒進佇列就被擋下)
  • 認證:SASL 認證成功或失敗。失敗通常代表密碼錯誤、用戶端設定錯誤,或有人正在嘗試猜密碼
  • 佇列:信件進入佇列(會配到一個佇列編號 queue id)、被取出投遞、投遞成功
  • 投遞結果:最終結果會出現 status= 字樣。status=sent 表示已交付對方;status=deferred 是暫時失敗(會重試,信件會留在「郵件伺服器 / 儲列管理」);status=bounced 是最終失敗(已退信給寄件者)
  • 退信與延遲:無法投遞的回報、暫時性延遲與重試

列表與查詢

「記錄」分頁上方只有一層選擇器:「選擇日誌檔案」,列出 mail.log 以及輪替後的舊檔(含 .gz 壓縮檔),切換時自動選取第一個檔案。

  • 表格只有「日誌內容」一欄,一列就是一行日誌
  • 預設順序:由新到舊,可切換排序方向
  • 每頁筆數:預設 50 筆
  • 搜尋:即時全文檢索,符合的關鍵字會反白
  • 搜尋語法:關鍵字1,關鍵字2 為 OR(任一命中)、關鍵字1+關鍵字2 為 AND(兩者都命中);逗號與加號不要混用,混用時整串會被當成一個關鍵字原樣比對
  • 郵件量大時 mail.log 成長很快,請務必用關鍵字縮小範圍再逐頁看
  • 沒有資料時顯示「暫無 SMTP 日誌資料」

實際最好用的關鍵字:

想查什麼 搜尋什麼 說明
某個寄件者的所有活動 jerry@mymail.ms 完整 Email 比只搜帳號精準
某個收件者的信 sales@yourcompany.com 可確認信是否曾嘗試投遞給這個人
某一封信的完整旅程 佇列編號(例如 4A1B2C3D4E) 同一封信的所有記錄都帶同一個 queue id,最可靠
投遞成功或失敗 status=sent、status=deferred、status=bounced 判斷「到底送出沒」最直接
認證失敗 SASL、authentication failed 查密碼錯誤或被暴力嘗試
特定來源 IP 203.0.113.8 查某台機器與本機的所有往來
某個網域 @yourcompany.com 查與某公司之間的所有郵件

組合範例:

  • 只看某人的寄信失敗:jerry@mymail.ms+status= (兩個條件都要命中)
  • 看兩種結果:status=bounced,status=deferred

匯出與刪除

日誌檔案選擇器旁有兩個共用按鈕:

  • 匯出:把目前選取的日誌檔下載。純文字以純文字下載、.gz 維持壓縮格式;檔名會自動加上下載時間戳,不會覆蓋舊檔。要提供給原廠或對方管理者排查時,匯出這個檔案最方便
  • 刪除:輪替舊檔整檔刪除(確認視窗「確定要刪除日誌檔案「:file」嗎?」);現役檔只清空內容、保留檔案(確認視窗「此為目前正在寫入的日誌,刪除將僅清空其內容(檔案保留)。確定要清空「:file」嗎?」)
  • 成功顯示「日誌檔案「:file」內容已清空」或「日誌檔案「:file」已刪除」;失敗顯示「刪除日誌檔案失敗」
  • 刪除日誌的動作本身也會寫入「操作日誌」

⚠️ 清空現役的 mail.log 會讓「最近這段時間的信件去向」再也查不到。若只是空間不夠,請改用輪替設定(縮短保留份數或開啟壓縮)。

設定(輪替)

「設定」分頁的輪替參數適用於 SMTP 日誌:

  • 記錄週期:每週(預設)或每天
  • 保留天數/保留週數:依週期決定單位
  • 單檔大小上限(MB):超過就提前輪替
  • 壓縮 rotate 檔:舊檔以 gzip 壓縮

調整後按「儲存設定」,成功顯示「logrotate 設定已儲存」,失敗顯示「logrotate 設定儲存失敗」。

空間使用

「空間使用」分頁會列出這支日誌相關檔案(含輪替檔與壓縮檔)的檔名、最後修改時間與空間占用,並顯示「總計(N 個檔案)」,清單依時間倒序。沒有檔案時顯示「目前沒有日誌檔。」;讀取失敗時顯示「讀取失敗」。

常見情境與判讀

  • 「對方沒收到」:先用收件者位址搜尋,找到帶 queue id 的那一行,再用 queue id 搜尋整段旅程。看到 status=sent 代表本機已成功交給對方伺服器——責任已經轉到對方,請對方管理者查他們的日誌;看到 status=deferred 代表還在重試,可到「郵件伺服器 / 儲列管理」確認;看到 status=bounced 代表最終失敗,日誌中會帶退信原因
  • 「收到退信,但看不懂原因」:用寄件者位址或 queue id 搜尋,找 status=bounced 那一行與其後的說明。常見原因是對方信箱不存在、對方信箱已滿、被對方判為垃圾信
  • 「懷疑帳號被盜用寄信」:用該帳號搜尋,短時間內出現大量不同收件者就是警訊。請立即請該使用者改密碼,並檢查「郵件伺服器 / 收發信對象管制」與「防火牆設定 / 自動防禦設定」
  • 「外來的信完全沒進來」:搜尋寄件者或主旨關鍵字;若完全沒有記錄,代表連線根本沒到(問題可能在對方、DNS 或上游防火牆),而不是本機拒收
  • 「一直被同一個 IP 嘗試認證」:搜尋 SASL 或 authentication failed,再用該 IP 搜尋。若同一個 IP 大量失敗,表示自動防禦即將(或已經)把它封鎖,可到「防火牆設定 / 自動防禦設定」的「已封鎖清單」查看

注意事項

  • 郵件量大的站台 mail.log 成長很快,建議開啟壓縮並確認單檔大小上限,避免單一檔案過大而拖慢查詢
  • SMTP 日誌同時是「防火牆設定 / 自動防禦設定」中 SMTP 防禦項目的判斷來源:時間窗內登入失敗達次數門檻時,來源 IP 會被自動封鎖;要查看或解除封鎖請到該頁的「已封鎖清單」
  • 這一頁只記錄寄信(SMTP)的過程;若信件已投遞成功但使用者仍說沒收到,請改看「IMAP日誌」確認用戶端是否成功收信
  • 這一頁不含信件內容。要查看信件本文與附件,請用「郵件記錄器」或「郵件過濾器」的紀錄區
  • 若信停在佇列沒有結果,請搭配「郵件伺服器 / 儲列管理」處理(重新發送或刪除)