在sps中使用第三方smtp软件解决邮件服务器不允许匿名访问的问题

长期以来,由于公司的 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 的帐户转发邮件就行了。至少,我现在这样认为。

如果,你被这个问题困惑了很久,赶快试一试吧

Published At
Categories with Web编程
Tagged with
comments powered by Disqus