我创建了一个自定义工作流程,可在工作流程启动时创建任务项目。 alt text http://img19.imageshack.us/img19/2862/screenshot310200942100p.png
我还为文档库和任务列表创建了一些自定义内容类型。
对于文档库: 首先,我添加一个文档库并将其配置为允许自定义内容类型。然后我添加了基于文档内容类型的内容类型。之后,我在工作流程设置下添加了工作流程。在这里,我选择我的自定义工作流程,为其命名并告诉sharepoint创建一个新任务列表来存储任务。
对于任务列表: 现在我有一个sharepoint创建的任务列表,我去那里并允许自定义内容类型,并确保“在分配所有权后发送电子邮件?”设置为是。然后我添加了两个基于工作流任务内容类型的自定义内容类型。那就是我应该做的一切。
当我启动我的工作流程时,它确实添加了批准任务(我正在使用名为createApprovalTask的CreateTaskWithContentType活动),但是没有为创建的任务发送电子邮件。
我在createApprovalTask活动中使用的代码是:
// make a new GUID for this task
createApprovalTask_TaskId = Guid.NewGuid();
// set simple properties of task
createApprovalTask.TaskProperties.AssignedTo = "a valid domain\user";
createApprovalTask.TaskProperties.Title = "Review Contract: " + approvalWorkflowActivated_WorkflowProperties.Item.DisplayName;
createApprovalTask.TaskProperties.SendEmailNotification = true;
如果我创建一个文档库并使用Sharepoint的内置工作流程之一(例如Approval),并告诉它为其创建任务列表,那么当项目添加到该列表时,它会正确地发送电子邮件。因此,外发邮件服务器的设置是正确的,因为我们接收其他电子邮件就好了。
我在createApprovalTask活动之后立即使用SendEmail活动将电子邮件发送回提交者,告诉他们我们已收到他们的批准请求。该代码类似于:
sendApprovalRecievedEmail.Body = emailBody;
sendApprovalRecievedEmail.Subject = emailSubject;
sendApprovalRecievedEmail.To = emailTo;
sendApprovalRecievedEmail.From = emailFrom;
这样可行,因此提交者会收到他们的自定义电子邮件,但任务所有者永远不会收到任务项目电子邮件。
答案 0 :(得分:4)
不幸的是,我们的邮件服务器因某些原因阻止了电子邮件。我浪费了两个半天的时间来寻找这个问题...而事实证明我们的IT部门并没有将它们放在一起。
谢谢大家。
答案 1 :(得分:2)
您必须正确设置sharepoint外发电子邮件设置。 示例显示在以下链接
中http://sharepoint-amila.blogspot.com/2008/02/outgoin-email-settings.html
如果您需要通过c#.net代码发送电子邮件,可以使用以下方法在自定义工作流程中发送电子邮件。 SPUtility.SendEmail方法(Microsoft.SharePoint.Utilities)
示例显示在下面的链接中 http://www.sharepoint-amila.blogspot.com/
答案 2 :(得分:0)
是否可以通过“domain \ user”指出SharePoint用户,就像使用createApprovalTask.TaskProperties.AssignedTo一样?是不是需要身份证?
“ID; #domain \用户名”