SMTP 日誌記錄郵件進出這一台閘道器的完整過程。MailVSR-GW 站在真實郵件伺服器前方,所有外來信件都要先經過它過濾再轉送給後端,因此這一份日誌就是郵件收送的流水帳:哪一封信從哪裡來、要寄給誰、有沒有被攔下、最後是送出去了還是失敗退回。
當使用者反映「信寄不出去」、「對方說沒收到」,或您要確認某封特定郵件到底有沒有經過、被如何處置時,這一頁是最直接的證據。
什麼時候會用到這一頁:
- 使用者說「信寄不出去」或「對方一直沒收到」
- 要確認某封郵件是否真的經過本機、以及最後的處理結果
- 郵件被延遲(佇列堆積),需要找出原因
- 懷疑有人嘗試用本機寄送廣告信(SMTP 認證失敗、來源被拒)
- 要確認閘道與後端伺服器之間的轉送是否正常
頁面組成
頁面分成三個頁籤:
- 記錄:選日誌檔案 → 瀏覽內容(主要使用區)
- 設定:這個日誌檔的輪替設定
- 空間使用:日誌檔(含輪替檔與壓縮檔)的空間占用
日誌檔案
這一頁只有一個日誌來源:/var/log/mail.log(郵件系統的通訊日誌)。因為只有一支,畫面上沒有「日誌項目」的第一層選單,只有「日誌檔案」的下拉選單讓您切換到較舊的輪替檔(mail.log.1、mail.log.2.gz…)。
檔案清單依最後修改時間新到舊排列,每個選項後面會標示修改時間。通常您只需要看最新那一支(正在寫入的 mail.log)。
記錄頁籤:怎麼讀一行 SMTP 日誌
一行典型的郵件日誌包含這幾個要素,讀懂它們就能判斷郵件的命運:
(queue id) 時間 主機 postfix/程序[pid]: 階段: 訊息
關鍵欄位:
- Queue ID(例:
3F2A1B4C9D):這一封信在郵件系統內的唯一編號。同一封信的所有階段都會帶同一個 Queue ID,所以只要用它搜尋,就能把這封信的完整生命週期(進來 → 過濾 → 轉送 → 結果)串起來。這是排查時最有力的工具 - 階段標籤:
smtpd(接收連線)、cleanup(歸檔)、qmgr(佇列管理)、smtp(送出)、lmtp(本機投遞)、postgrey(灰名單)等,代表這一行發生在哪個環節 from=/to=:信封上的寄件者與收件者client=/relay=:連線來源(對方主機名與 IP)/轉送目標status=:這一行最重要,代表最後結果dsn=:失敗時的診斷碼(例如4.7.1暫時失敗、5.1.1查無此人)sasl_username=:通過 SMTP 認證的帳號(有這個欄位代表是「已認證的使用者寄信」,不是外來投遞)
status= 的常見值與意義:
| 值 | 意義 | 後續 |
|---|---|---|
sent |
已成功交給對方伺服器(或後端) | 正常結束 |
deferred |
暫時送不出去,留在佇列等待重試 | 稍後會自動重試;持續 deferred 代表對方或線路有問題 |
bounced |
退回給寄件者(永久失敗) | 寄件者會收到退信,附帶原因 |
rejected |
在接收階段就被拒絕(沒有進佇列) | 常見於認證失敗、來源被黑名單、收件者不存在 |
discarded |
被規則丟棄 | 通常是過濾規則判定為垃圾信或病毒 |
排除問題時最實用的搜尋關鍵字(直接貼進搜尋框):
- 某個 Queue ID → 追一封特定郵件的完整過程
status=deferred→ 找出所有還在排隊、送不出去的信status=bounced→ 找出所有被退回的信status=rejected→ 找出被拒絕的連線(含認證失敗)NOQUEUE→ 還沒進佇列就被拒絕的連線(設定或政策層級的拒絕)SASL LOGIN authentication failed→ 有人用錯的帳密嘗試寄信(可能是帳號被盜用嘗試)warning:→ 郵件系統的警告訊息(例如連線逾時、對方回應過慢)to=<user@yourcompany.com>→ 只看寄給某個收件者的信;多個收件者可用+串(AND)
搜尋語法:字A,字B=任一命中(OR);字A+字B=兩個都要命中(AND);其他寫法當成單一字串。+ 與 , 混用不會被拆解。比對不分大小寫,mail.log.2.gz 之類的壓縮檔也會自動解壓後搜尋。
列表與排序:只有「日誌內容」一欄,可點標題切換排序方向;預設由大到小(最新在上面);每頁 50 筆。沒有資料時顯示「暫無 SMTP 日誌資料」。
匯出與刪除
- 匯出:下載該檔完整內容(不受畫面搜尋與分頁影響),檔名自動加時間戳。系統以 root 讀取,權限受限的日誌檔也匯得出來
- 刪除:活檔(
mail.log)→ 只清空內容、保留檔案,確認視窗顯示「此為目前正在寫入的日誌,刪除將僅清空其內容(檔案保留)。確定要清空「mail.log」嗎?」;輪替檔(mail.log.1/mail.log.2.gz)→ 真正刪除,確認視窗顯示「確定要刪除日誌檔案「:file」嗎?」 - 成功訊息為「日誌檔案「:file」內容已清空」或「日誌檔案「:file」已刪除」;失敗訊息為「刪除日誌檔案失敗」、「刪除日誌檔案失敗:檔案無法刪除(權限或檔案屬性限制)」、「清空日誌檔案失敗:檔案無法寫入(權限或檔案屬性限制)」
清空活檔後系統會通知郵件服務重新開啟日誌檔,避免服務繼續寫入舊位置。
⚠️ mail.log 是排查郵件問題最重要的歷史資料,若要清空請先匯出備份。且清空只會影響日誌檔,不會刪除佇列中的信件(要處理佇列請到(郵件閘道 / 儲列管理))。
設定頁籤:輪替設定
- 記錄週期:每週(預設)或每天
- 保留天數/保留週數:保留幾份舊日誌(依週期決定單位,欄位名稱會跟著切換),可填 1–400;出廠預設保留 8 週
- 單檔大小上限:可填 1–200 MB,出廠預設 50 MB;超過即提前輪替
- 壓縮 rotate 檔:預設開啟(舊日誌壓縮成
.gz)
按「儲存設定」,成功顯示「logrotate 設定已儲存」,失敗顯示「logrotate 設定儲存失敗」。設定於下次輪替時生效。
容量估算建議:SMTP 日誌的量與郵件量成正比。以每天 1 萬封計,mail.log 每天約數十 MB;若您調高「保留份數」,請一併到「空間使用」頁籤確認總量。
空間使用頁籤
列出 mail.log 及其輪替檔與壓縮檔的「檔案名稱/最後修改/空間占用」,最後顯示「總計(N 個檔案)」,依時間新到舊。沒有檔案顯示「目前沒有日誌檔。」;讀取失敗顯示「讀取失敗」。
常見情境與判讀
- 「這封信到底有沒有進來?」:用寄件者或收件者搜尋。有
smtpd的接收記錄=進來了;完全沒有=根本沒送到本機(問題在對方或 DNS) - 「信卡住送不出去」:搜尋
status=deferred看原因(對方連不上、對方暫時拒收、DNS 查不到)。同時到(郵件閘道 / 儲列管理)確認佇列,並用 Queue ID 對照 - 「對方說沒收到」:用收件者搜尋,看最後的
status=。sent代表已交給對方(要對方查他們那一端);bounced代表退回,dsn=會寫明原因 - 「使用者說被退信」:搜尋
status=bounced或dsn=5.,把完整訊息給使用者看,通常能直接看出是「查無此人」還是「信箱已滿」 - 「懷疑被當跳板」:搜尋
SASL LOGIN authentication failed與rejected,確認來源 IP;搭配(系統日誌 / 阻斷記錄)看是否已被自動封鎖,並考慮在(郵件閘道 / SMTP服務設定)調整認證與 Relay 限制 - 「寄出去的信被對方判為垃圾信」:確認 SPF/DKIM/DMARC 三項驗證設定((郵件閘道 / SPF 管理)、(郵件閘道 / DomainKey管理)、(郵件閘道 / DMARC管理))
注意事項
- 日誌內容是歷史紀錄,這一頁只讀不寫(唯一的例外是「設定」頁籤的輪替參數)
sent不等於「對方已讀」,只代表「已成功交給對方的伺服器」;之後是否被對方丟棄或歸到垃圾信,本機看不到- 郵件位址在日誌中會以
< >包住;搜尋時不必輸入角括號,直接打位址即可 - 同一封信可能有多行、多個階段,請以 Queue ID 串連閱讀,不要只看最後一行
- 這一頁是閘道器的郵件日誌;若要看後端伺服器端的收信情形,需到後端伺服器查(本機看不到後端內部的投遞結果)
- 相關頁面:(郵件過濾器 / 過濾器設定)看信件被規則如何處置、(郵件閘道 / 儲列管理)處理還在排隊的信