2

我创建了一个自定义工作流,它在工作流启动时创建一个任务项。 替代文字 http://img19.imageshack.us/img19/2862/screenshot310200942100p.png

我还为文档库和任务列表创建了一些自定义内容类型。

对于文档库:首先,我添加一个文档库并将其配置为允许自定义内容类型。然后我添加我的内容类型,它基于文档内容类型。之后,我在工作流设置下添加了一个工作流。在这里,我选择了我的自定义工作流程,给它一个名字并告诉 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;

这可行,因此提交者会收到他们的自定义电子邮件,但任务所有者永远不会收到任务项电子邮件。

4

3 回答 3

4

不幸的是,我们的邮件服务器出于某种原因阻止了这些电子邮件。我浪费了 2 1/2 天的时间来寻找这个问题......结果我们的 IT 部门并没有把他们的狗屎放在一起。

谢谢大家。

于 2009-03-19T15:33:56.247 回答
2

您必须正确设置共享点外发电子邮件。示例如下面的链接所示

http://sharepoint-amila.blogspot.com/2008/02/outgoin-email-settings.html

如果您需要通过 c#.net 代码发送电子邮件,您可以使用以下方法在自定义工作流程中发送电子邮件。SPUtility.SendEmail 方法 (Microsoft.SharePoint.Utilities)

示例显示在下面的链接 http://www.sharepoint-amila.blogspot.com/

于 2009-03-14T20:51:15.590 回答
0

是否可以像使用 createApprovalTask​​.TaskProperties.AssignedTo 一样通过“域\用户”指出 SharePoint 用户?不需要身份证吗?

“id;#域\用户名”

于 2009-03-10T20:46:10.830 回答