需求:在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了.
浙公网安备 33010602011771号