下面主要代码为主,一些记录,以备不时只需!
1.新建一个类库项目TaskEventHandler
02 |
using System.Collections.Generic; |
05 |
using Microsoft.SharePoint; |
06 |
using Microsoft.SharePoint.Utilities; |
09 |
namespace EventHandler |
11 |
public class TaskEventHandler : SPItemEventReceiver |
13 |
public override void ItemAdded(SPItemEventProperties properties) |
16 |
SPListItem taskListItem = properties.ListItem; |
17 |
SPFieldUser assignedTo = (SPFieldUser)taskListItem.Fields[SPBuiltInFieldId.AssignedTo]; |
18 |
SPFieldUserValue user = (SPFieldUserValue)assignedTo.GetFieldValue(taskListItem[SPBuiltInFieldId.AssignedTo].ToString()); |
19 |
SPUser userObject = user.User; |
20 |
using (SPWeb web = new SPSite(properties.SiteId).OpenWeb(properties.RelativeWebUrl)) |
22 |
bool isEmailServerSet = SPUtility.IsEmailServerSet(web); |
25 |
bool appendHtmlTag = false; |
26 |
bool htmlEncode = false; |
27 |
string toAddress = userObject.Email; |
28 |
string subject = "Tasks - " + taskListItem[SPBuiltInFieldId.Title] + " has been assigned to you"; |
29 |
StringBuilder sb = new StringBuilder("" + taskListItem[SPBuiltInFieldId.Title] + "has been assigned to you"); |
31 |
sb.Append("<tr><td>Title:</td><td>" + taskListItem["Title"] + "</td></tr>"); |
32 |
sb.Append("<tr><td>Priority:</td><td>" + taskListItem[SPBuiltInFieldId.Priority] + "</td></tr>"); |
33 |
sb.Append("<tr><td>Status:</td><td>" + taskListItem[SPBuiltInFieldId.StatusBar] + "</td></tr>"); |
34 |
sb.Append("<tr><td>% Complete:</td><td>" + taskListItem[SPBuiltInFieldId.Completed] + "</td></tr>"); |
35 |
sb.Append("<tr><td>Assigned To:</td><td>" + taskListItem[SPBuiltInFieldId.AssignedTo] + "</td></tr>"); |
36 |
sb.Append("<tr><td>Description:</td><td>" + taskListItem[SPBuiltInFieldId.DecisionStatus] + "</td></tr>"); |
37 |
sb.Append("<tr><td>Start Date:</td><td>" + taskListItem[SPBuiltInFieldId.StartDate] + "</td></tr>"); |
38 |
sb.Append("<tr><td>Due Date:</td><td>" + taskListItem[SPBuiltInFieldId.Duration] + "</td></tr>"); |
39 |
sb.Append("</table>"); |
40 |
sb.Append("Last Modified " + taskListItem[SPBuiltInFieldId.Modified] + " by " + taskListItem[SPBuiltInFieldId.Modified_x0020_By] + ""); |
43 |
bool result = SPUtility.SendEmail(web, appendHtmlTag, htmlEncode, toAddress, subject, message); |
46 |
SPListItem item = properties.ListItem; |
47 |
string path = @"C:\test.txt"; |
48 |
StreamWriter writer = new StreamWriter(path); |
49 |
writer.WriteLine("My Test"); |
50 |
foreach (SPField f in properties.ListItem.Fields) |
52 |
writer.WriteLine(f.Title + "==>" + properties.ListItem[f.Title]); |
54 |
writer.WriteLine("++++++++++++++++++++++++++++++++++++++++++++++++++++"); |
55 |
writer.WriteLine("SPUtility.IsEmailServerSet(web)==>" + SPUtility.IsEmailServerSet(web)); |
56 |
writer.WriteLine("userObject.Email" + userObject.Email); |
57 |
writer.WriteLine("taskListItem[SPBuiltInFieldId.Title]==>" + taskListItem[SPBuiltInFieldId.Title]); |
58 |
writer.WriteLine("taskListItem[SPBuiltInFieldId.Body]==>" + taskListItem[SPBuiltInFieldId.Body]); |
59 |
writer.WriteLine("ReceiverData==>" + properties.ReceiverData); |
60 |
writer.WriteLine("EmailBody==>" + taskListItem[SPBuiltInFieldId.EmailBody]); |
61 |
writer.WriteLine("EMail==>" + taskListItem[SPBuiltInFieldId.EMail]); |
62 |
writer.WriteLine("Email2==>" + taskListItem[SPBuiltInFieldId.Email2]); |
63 |
writer.WriteLine("Email3==>" + taskListItem[SPBuiltInFieldId.Email3]); |
64 |
writer.WriteLine("EmailBody==>" + taskListItem[SPBuiltInFieldId.EmailFrom]); |
65 |
writer.WriteLine("EmailFrom==>" + taskListItem[SPBuiltInFieldId.EmailSubject]); |
66 |
writer.WriteLine("EmailTo==>" + taskListItem[SPBuiltInFieldId.EmailTo]); |
67 |
writer.WriteLine("EncodedAbsWebImgUrl==>" + taskListItem[SPBuiltInFieldId.EncodedAbsWebImgUrl]); |
68 |
writer.WriteLine("EmailCc==>" + taskListItem[SPBuiltInFieldId.EmailCc]); |
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
namespace RevolutionTaskApp
{
class Program
{
static void Main(string[] args)
{
using (SPSite site = new SPSite(http://mossserver:7000/))
{
using (SPWeb web = site.RootWeb)
{
SPList list = web.Lists["Tasks"];
//下面第二个参数为上面的DLL程序集信息,可用Reflector查看
list.EventReceivers.Add(SPEventReceiverType.ItemAdded, "EventHandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=64e8493434b90339", "EventHandler.TaskEventHandler");
Console.WriteLine("doing ....");
Console.ReadKey();
}
}
}
}
}
3. 运行控制台应用程序即可….