使用smtp4dev測試SharePoint outgoing email

今天跟大家简介用smtp4dev来测试outgoing email的方法。

Outgoing email即是由SharePoint发给用户的email, 一般来说你需要有SMTP server就可以测试outgoing email了, Windows 2008本身就有SMTP功能(位于IIS6 Manager底下)。但如果要来一场「真实」的测试, 你就要(1)架设一部Email server如Exchange去收email; 或(2)把VM连上Internet然后send到一个如gmail的信箱。

以上两种方法, 第(1)种根本无法在我的8GB notebook上执行, 而且我的开发工作与email的关系比较少, 不想太大废周章。第(2)种算比较简单, 但有时会受外围因素影响导致测试失败(如掉进Spam folder), 而且当你要发email给几个人, 就要开好多个email box。

如果你不求「真实」体验, smtp4dev绝对是最简便的测试工具。以下为架设步骤:

1. 先去codeplex把smtp4dev下载, 它是一个约600k的exe程式, 把程式抄到server上。双击启动smtp4dev, 设定一下, 除了输入domain其他用预设值。启动后右下角会有个小icon表示他正在执行, 确定它有listening port 25

   

 

2. 在SharePoint 2013 central administration (管理中心) -> 系统设定->设定外寄电子邮件设定:

 

 

在外送伺服器栏里填入你server的machine name, 如果你的farm有几台server的话, 就是填你放smtp4dev那台的名字。寄件者地址和回覆址址,需要填入一个可以代表SharePoint系统的email (在实际情况, 多会填IT Support或SP admin的EMAIL), 由于我们是在测试, 随便填一个容易记住的就好。

3. 完成上一步就已经完成了设定啦! 现在我们用其中一个user帐号, 登入客户端, 然后随便找一个Document library, 设定一个「提醒我」(Alert me), 在上面的ribbon选文件库就看到:

 

4. 设定在有任何更新时发出电邮通知。

在上图中, 你看到用户的email会显示出来的, 表示该用户的WorkEmail有正确设定, 可以跳到第5步。

但是, 如果你在​​使用的user帐户没有设定email, 在上图email的位置就会是空的, 按「确定」钮时会弹出这个错误:

这是由于正在使用的帐户的User Profile的WorkEmail是空的, SharePoint提醒你要先填好才能报行任务。

要确认你要测试的User有没有填好WorkEmail, 可以在User Profile Service Application -> Manage User Profile (管理使用者设定档)查看:

 

如上图所示, 我的测试用户10008的WorkEmail是空的。如果已经设定要AD Sync, 要检查AD中有没有填好email, 然后再同步一次。或是用Powershell来更新User Profile (我过几天会写一下怎样改)

5. 于Document library上传一份新文件, trigger SharePoint发出通知。

6. 这时回到Server, 看到smtp4dev的视窗弹出来, 表示它「拦截」到邮件了:

 

之所以叫「拦截」因为它只是把所有经过port25的讯息都拦下来, 然后包装成email的样子呈现, 如果你有架设到SMTP服务器, 但又启到smtp4dev的话, 邮件是会被它拦下来的!

在上图中可以看到, 从SharePoint发出邮件的Subject, to address等等, 按”Save..”可以储成.eml文件, 或是直接double click 你预设的email软件会自动打开, 我用的是Thunderbird:

 

可惜的是smtp4dev有美中不足, 邮件中有些中文字都变了乱码。

虽然有缺憾, 但一个小小的程式, 连安装都不需要就可以马上用了, 我十分推荐。

你可能感兴趣的:(SharePoint)