Я создал собственный рабочий процесс, который создает элемент задачи, когда рабочий процесс запускается.
альтернативный текст http://img19.imageshack.us/img19/2862/screenshot310200942100p.png
Я также создал несколько пользовательских типов контента для библиотеки документов и списка задач.
Для библиотеки документов:
Сначала я добавляю библиотеку документов и настраиваю ее для разрешения пользовательских типов контента. Затем я добавляю свой тип контента, который основан на типе контента документа. После этого я добавляю рабочий процесс в настройках рабочего процесса. Здесь я выбираю свой собственный рабочий процесс, присваиваю ему имя и сообщаю sharepoint создать новый список задач для хранения задач.
Для списка задач:
Теперь, когда у меня есть список задач, созданный на sharepoint, я перехожу туда и разрешаю настраиваемые типы контента и проверяю, «Отправить электронную почту, когда назначено право собственности?» установлено на Да. Затем я добавляю два пользовательских типа контента, которые основаны на типе контента задачи рабочего процесса. Вот и все, что я должен сделать.
Когда я запускаю свой рабочий процесс, он добавляет задачу утверждения (я использую действие CreateTaskWithContentType, которое называется createApprovalTask), но электронное письмо для созданной задачи не отправляется.
Код, который я использую в действии 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 (например, Утверждение), и приказываю ему создать для него список задач, при добавлении элемента в этот список он правильно отправляет электронное письмо , Итак, настройки для сервера исходящей почты верны, так как мы получаем другие электронные письма просто отлично.
Я использую действие SendEmail сразу после действия createApprovalTask, чтобы отправить по электронной почте отправителю сообщение о том, что мы получили запрос на утверждение. Код для этого похож на:
sendApprovalRecievedEmail.Body = emailBody;
sendApprovalRecievedEmail.Subject = emailSubject;
sendApprovalRecievedEmail.To = emailTo;
sendApprovalRecievedEmail.From = emailFrom;
Это работает, поэтому отправитель получает свое собственное электронное письмо, но владелец задачи никогда не получает электронное письмо с элементом задачи.