公司用的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://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所有的邮箱账号,读取邮件并转发。
来源:http://www.cnblogs.com/SeeMeFly/archive/2013/04/10/3013339.html