最近在折腾SharePoint2007,在工作流中要发送邮件给指定的邮箱,
但网上大部分事例都是使用ExchangeServer的方案,我觉得太麻烦,在网上找了些资料,最终实现了使用Gmail的STMP服务器来发送邮件到指定的邮箱
(这个方案在小企业/私人应该比较好,不用企业自己架设邮件服务器)
测试的环境:
OS:WindowsServer2008R2
Application:SharePointServer2007,SharePointService3.0
依赖的服务:
IIS7.0或者6.0
SimpleMailTransferProtocol(SMTP)
上面两个服务请通过服务器管理器进行安装
步骤:(我的是英文的系统,中文的系统对应图标,按钮应该都在固定的位置的)
1.安装完IIS和SMTPServer服务后,点击开始->管理工具->IIS6.0Manager
2.在IIS服务器管理页面,右击主机名下面的SMTP虚拟服务器,选择属性选项,如下图
3.切换到Delivery选项卡,如下图
4.点击OutboundSecurity按钮,选中Basicauthentication,并输入你的Gmail用户名和密码
同时选中TLSencryption,点击OK返回
5.点击Outboundconnections按钮,如下图:并设置TCPport为587(我发现设置这个端口比设置通常的465发邮件快很多)点击OK,返回
7.点击Advanced按钮,如下图,在Fully-qualifieddomainname填入主机名
在Smarthost输入:smtp.gmail.com,点击OK,返回
SMTP服务器代理就设置好了,下面设置SharePoint站点
7.打开SharePoint中心管理站点,并点击Operation选项卡,如下图:
3)Reply-to-address填入Gmail地址
OK,返回
通过上面的配置,我们的SharePoint网站就可以在工作流中通过这个地址给任意的邮箱发通知了。
参考网址:http://www.sharepointbasic.com/2011/09/configure-email-settings-in-sharepoint.html
如何在工作流中发送电子邮件可参考:http://www.cnblogs.com/gaoweipeng/archive/2009/11/05/1596417.html
其他解决方案:
长期以来,由于公司的Exchange Server关闭了匿名发送邮件的功能,我们部署的Sharepoint 以及Projectserver的相关的依赖匿名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服务器中用于转发的那个用户的邮件地址。
这样,订阅的邮件就可以顺利的发送到订阅者的邮箱了。