Windows server 2008 SMTP Service 讓主機有發信功能~調整 W3C 紀錄格式讓 SMTP 紀錄更方便查閱

小編又來了,狂老闆這次又要求希望在主機上能夠直接提供發信的功能,因為之前他習慣透過 Gmail 來發系統通知警告信,萬能的 Gmail在大陸這端就是失效了… (理由就不特別說明嘿!小編沒有政治情結,只有老闆對錯情節 … 呵呵),這個時候小邊就不得不推薦 Windows Server 內建的 SMTP Service 就很好用了。

環境:Windows Server 2008 R2 SP1

快來看看 Windows Server 2008 R2 的安裝設定步驟,系統管理工具 > 伺服器管理員 > 功能 > 新增功能。這裡提醒一下,SMTP Service 是在 IIS 6.0 管理員介面裡面,而不是在 IIS 7 下面,別傻傻的跑去 IIS 7 下找管理及設定 SMTP …(老實說 … 小編一開始以為是這樣 …)

勾選 SMTP 伺服器,系統會同時詢問並自動勾選 SMTP 伺服器工具 和 IIS 6.0(未安裝的話)。

一堆確認訊息沒有問題的話,就可以開始安裝囉。

安裝完成!

在開始設定前,先做個服務調整一下,因為 SMTP Service 預設是「手動」啟動服務,若主機重新開機的話,服務就會停用了!所以請改成「自動」。伺服器管理員 > 設定 > 服務 > Simple Mail Transfer Protocol(SMTP)> 滑鼠右鍵「內容」> 一般  > 啟用類型從手動改為自動,並啟動服務

Simple Mail Transfer Protocol(SMTP)服務設定完成。

再來就是去做設定啦,系統管理工具 > Internet Information Services(IIS)6.0 管理員

進去 IIS 6.0 後就可以看到 SMTP 本尊了!

請對 SMTP Virtual Server > 滑鼠右鍵 > 內容

點選頁籤「存取」 > 轉送 ,於轉送限制的地方點選「僅限下列清單」 > 在點選「新增」。

輸入 IP 位址 127.0.0.1 (你要輸入主機的內網 IP 位置也行),在按確定就完成囉!沒錯,就是這麼簡單~就是這麼簡單~就是這麼簡單。

當然還是要測試一下啦,小編使用免費免安裝 DreamMail 收發郵件軟體測試一下。只要做幾個設定即可
設定外寄(傳送)伺服器:127.0.0.1 ,其他皆都不用設定,也不需要身分驗證。

發封測試信吧!輸入寄件者郵件地址,當然就是輸入小編的郵件地址囉。

傳送出去,速度很快地就送出去了!

噹噹噹 ~ 收到測試信就 OK 囉!剩下就是交由程式開發者(就是我家的狂老闆 …)調整開發系統透過主機的 SMTP Service 來發送警告通知信囉。

最後就是要提到紀錄的部分,畢竟你還是會碰到需要確認信件是否有發信的動作、發信的時間等等,不然要是沒收到通知又抓不出原因就很麻煩了!(紀錄真的是很重要低 …)

OK ~ SMTP Service 是在 IIS 6.0 管理員介面裡面所控制的,理所當然的他的 LOG 也是標準 IIS W3C 擴充記錄檔格式天啊!這種鳥紀錄誰會看得懂,對於我們這種系統管理員日常維護一點幫助都沒有(真不知道微軟是在想什麼,東西只做一半 …)。所以呢,我們要做一些小小調整來了解 SMTP 做了什麼事!

請至 SMTP Virtual Server > 滑鼠右鍵 > 內容 > 於頁籤「一般」下勾選「啟用紀錄」

然後點選記錄格式旁邊的「內容」 > 於頁籤「一般」下設定你要存放紀錄的目錄建議不要用預設的,不然會跟你其他的IIS 紀錄混在一起

再點選頁籤「進階」,勾選你要的紀錄項目。
小編大概勾選以下項目提供參考,詳細內容說明請參考 RFC 821 文件。
日期(date)
時間(time)
用戶端 IP 位址(c-ip)
使用者名稱(cs-username)
服務名稱(s-sitename)
伺服器名稱(s-computername)
伺服器 IP 位址(s-ip)
伺服器連接埠(s-port)
方法(cs-method)
URI 查詢(cs-uri-query)
通訊協定狀態(sc-status)
Win32 狀態(sc-win32-status)
已傳送位元組(sc-bytes)
已接收位元組(cs-bytes)
花費時間(time-taken)
通訊協定版本(cs-version)

勾選完成後,其記錄檔會變的非常詳細,如下圖示,雖然沒有專業郵件伺服器的紀錄這麼詳細!但至少可以知道大致上的內容了,若有更好的做法小編在來分享囉,打完收工。

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料