搭建小型郵件服務器


公司用的Exchange郵件服務器,最近升級內外網郵件分離。在使用Outlook鏈接Exchange Server的時候,只能收到公司內部之間的郵件。而JIRA的服務器配置的發送郵箱的服務器是外網的。

於是申請了公司內部郵箱賬號來發送JIRA郵件,無奈公司的Exchange Server要求使用NTLM認證,JIRA 3.12封裝的JMail版本太低,不支持。雖然配置正確的郵箱賬號,但是還是提示客戶端認證失敗的問題。

P.S JMail 1.5以上的版本就沒有問題,JIRA 4.0以上的版本這樣配置就OK。

嘗試對JIRA發送郵件的JAR文件進行反編譯,但是代碼進行了混淆,反編譯的代碼有問題。

 

於是想到的解決辦法是在本地搭建一個簡單的郵箱服務器,讓JIRA發送郵件到該服務器。然后從該服務器或者用工具將郵件轉發到公司內外的郵箱。

一:郵件服務器

免費的簡單的郵件服務器很多。有hMailServer, U-MailServer等,后面看到一邊關於hMailServer配置的說明,感覺很滿足我的需求。於是就下載下來。(以下三個鏈接都是同一個說明)

http://dagai.net/hmailserver/

http://hi.baidu.com/uqian/item/c2e80806f7d1e2eb35990236

http://blog.csdn.net/DreamIllness/archive/2011/01/30/6170321.aspx 

在JIRA上面配置發送郵件的賬號,在hMailServer上面給所有的同事創建了對應公司的郵箱的賬號,並讓大家修改JIRA上面的郵箱。

 

hMailServer有一個郵件轉發的功能,但是用公司Exchange賬號配置成中繼服務器還是不行。提示Exchange Server不接受hMailServer這個發送的郵件。

 

二:POP3類庫

無奈,於是考慮寫個.NET服務遍歷所有的hMailServer的賬號。把JIRA的郵件forward到公司的郵箱。(因為.NET程序用公司郵箱賬號發送郵件沒有問題。)

在網上找到很多.NET的POP3類庫,還有些是開源的:LumiSoft.Net,OpenPop.NET,Pop3MailClient.

最后選中的時OpenPop.NET,有源碼。而且還有個WinForm的例子。運行起來測試了一下,基本實現郵件客戶端的功能:

顯示郵件列表,郵件內容。還有一些郵件詳細的信息。

接下來的事件就很簡單了,寫一個程序不停的check所有的郵箱賬號,讀取郵件並轉發。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM