最近碰到这样一个需求,用户需要个简单的定时邮件提醒,就是抓取SharePoint某个列表里的值,然后作为邮件地址/邮件主题/邮件内容发送出去。
自己想了想,既然用户要求每天定时发送,那么肯定是任务计划,这样使用PowerShell是最方便不过的。
SharePoint 发送邮件的方法很简单,就是利用自带的SendEmail()方法就可以了,这里,我们用PowerShell调用Net方法SendEmail()来发送邮件。
首先就是邮件头部信息,包括邮件地址 主题和内容,如下:
//这是我的网易邮箱,有SharePoint项目或者机会,都欢迎联系我,哈哈
$email = "linyu_s@163.com"
$subject = "XXX Application Approval Notification"
$body = "balabalabala...."
然后,就是打开SharePoint站点:
$site = New-Object Microsoft.SharePoint.SPSite "http://workflow-platform/sites/xxx"
$web = $site.OpenWeb()
最后,就是去发送邮件了:
[Microsoft.SharePoint.Utilities.SPUtility]::SendEmail($web,0,0,$email,$subject,$body)
结束语
这就是利用SharePoint服务器端对象里Microsoft.SharePoint.Utilities.SPUtility 中的SendEmail() 去发送邮件,当然,我们还可以借助类似方法,调用SharePoint 中其他的对象模型,大家就可以发挥自己的想象了。
功能实现起来,是不是很简单,studio甚至都不用打开visual studio就可以完成了,这就是SharePoint 作为产品的便利。
……