需求:在Sharepoint2010中增加一条记录时发送邮件给其他用户
思路:给列表绑定一个EventHandler,重写Added方法
步骤一:创建列表(TestEventHandlerList)
步骤二: 创建类(TestListEventHandler)
public class TestListEventHandler : SPItemEventReceiver { public override void ItemAdded(SPItemEventProperties properties) { //base.ItemAdded(properties); try { SPListItem item = properties.ListItem; string title = item["标题"].ToString(); string creator = "null"; string createTime = "null"; if (item["创建者"] != null) { creator = item["创建者"].ToString(); } if (item["创建时间"] != null) { createTime = item["创建时间"].ToString(); } new TimerExecute().SendMail("added"+title, creator+createTime); } catch (Exception ex) { MailMessage message = new MailMessage(); message.From = new MailAddress("xxx@xxx.com.cn"); message.To.Add("xx@xx.com.cn"); message.Subject = "error"; message.Body = ex.Source + "**" + ex.Message; SmtpClient client = new SmtpClient("192.168.0.1"); client.Send(message); } } public override void ItemAdding(SPItemEventProperties properties) { //base.ItemAdding(properties); try { SPListItem item = properties.ListItem; if (item == null) { throw new Exception("properties.ListItem is null"); } string title = "null"; if (item["标题"] == null) { title = item["标题"].ToString(); } string creator = "null"; string createTime = "null"; if (item["创建者"] != null) { creator = item["创建者"].ToString(); } if (item["创建时间"] != null) { createTime = item["创建时间"].ToString(); } new TimerExecute().SendMail("adding"+title, creator + createTime); } catch (Exception ex) { MailMessage message = new MailMessage(); message.From = new MailAddress("xxx@greatwall.com.cn"); message.To.Add("xxx@greatwall.com.cn"); message.Subject = "error"; message.Body = ex.Source+"**"+ex.Message ; SmtpClient client = new SmtpClient("192.168.0.1"); client.Send(message); } } }
步骤三: 把dll放到GAC目录中
步骤四:写个winform程序把TestListEventHandler的事件绑定到TestEventHandlerList上
private void button2_Click(object sender, EventArgs e) { try { Type receiverType = typeof(TestListEventHandler); //MessageBox.Show(receiverType.Assembly.FullName); SPSite site = new SPSite("http://gwsps03"); SPWeb web = site.OpenWeb(); SPList lists = web.Lists.TryGetList("TestEventHandlerList"); //先卸载 foreach (SPEventReceiverDefinition def in lists.EventReceivers) { if (def.Assembly == receiverType.Assembly.FullName) { def.Delete(); break; } } //string assName = "SharepointStudy, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b839543c1c684877"; string assName = receiverType.Assembly.FullName; string claName = "SharepointStudy.TestListEventHandler"; lists.EventReceivers.Add(SPEventReceiverType.ItemAdded, assName, claName); lists.EventReceivers.Add(SPEventReceiverType.ItemAdding, assName, claName); MessageBox.Show("部署成功"); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
步骤五:测试,增加一条记录,就收到邮件了,OK了.