长期以来,由于公司的Exchange Server关闭了匿名发送邮件的功能,我们部署的Sharepoint 以及Project server的相关的依赖匿名smtp服务器的功能就停止工作了。我不太明白,微软在设计这些系统的时候是怎么想的,但是,这的确让我们丧失了一个很重要的一些功能,由此,我们的一些部门也抱怨不已。所以,我一直想解决这个问题。
我曾经想使用windows自带的smtp转发来解决这个问题。网络工程师在Exchange Server上指定允许我的服务器上的smtp将邮件中继到Exchange Server上。我将sharepoint上的smtp服务器设置为我自己的服务器,并且,我的smtp服务器允许匿名发送邮件。然后,我的smtp服务器将收到的邮件中继到Exchange server上(当然要身份验证啦)。可是,并没有成功,我仔细分析过smtp的日志,大多数的原因,是因为邮件的From中的是空的,而Exchange Server不允许冒名发送邮件的,所以就会转发不成功。我不太明白这是为什么。希望有人有成功的经验可以分享。
这里我要和大家分享的是,我使用第三方的smtp服务器软件获得的成功。
1、准备工作
我停掉了系统自带的smtp服务。网络工程师在Exchange Server允许我的这台服务器中转邮件给它。
2、安装软件
我这次用的是URL OCloud.Software.Mail.Direct.Pro.v2.1.5.0。安装好后,根据设置向导信息设置DNS,当然就是公司内部的DNS啦,然后设置转发的服务器。这个软件允许你在设置转发服务器的时候指定用于验证的用户和密码,并且支持NTLM验证。我指定所有发送到公司域的邮件都转发给Exchange Server。
3、设置SharePoint
将Sahrepoint的邮件服务器地址设置为我自己刚刚架设的服务器,要注意发送地址和回复地址都要写成smtp服务器中用于转发的那个用户的邮件地址。
这样,订阅的邮件就可以顺利的发送到订阅者的邮箱了。
4、不同的邮件需要不同的转发帐户
当你创建用户的时候,Sharepoint会自动发送一个邮件给该用户,但是,经过这样设置以后,我发现,这种邮件发送不成功。我查看了日志,原来,此时发送的邮件的From中用的是操作者的(即管理员)的邮件地址,而不是在Sharepoint smtp服务器设置时用的邮件地址,所以发送不成功。于是,我又在Mail Driect Pro 中增加了一个转发服务器,服务器地址还是Exchange Server的地址,不过,这次用于验证的用户我写成自己的帐户(这个账户也是Sharepoint的Owner),试了一下,ok,成功了。那是不是要为所有的管理员都创建转发邮件服务器呢?我让别的管理员试了一下,居然也没有问题了(这一点我比较困惑)。是不是只要设置了用Sharepoint Owner的帐户转发邮件就行了。至少,我现在这样认为。
如果,你被这个问题困惑了很久,赶快试一试吧