在自定义工作流程中使用SPUtility.SendEmail方法时遇到了一些麻烦。
private void onWorkflowActivated1_Invoked(object sender, ExternalDataEventArgs e)
{
if (SPUtility.IsEmailServerSet(workflowProperties.Site.OpenWeb()))
{
StringDictionary headers = new StringDictionary();
headers.Add("to", "myemailaddress@mailinator.com");
headers.Add("from", "somebody@example.com");
headers.Add("content-type", "text/html");
SPSecurity.RunWithElevatedPrivileges(delegate()
{
bool test = SPUtility.SendEmail(web, headers, "some message body");
});
}
}
在上面的代码中,方法SPUtility.SendEmail总是返回false。
我甚至尝试使用RunWithElevatedPrivileges,但该方法仍返回false。
smtp配置不是问题,因为在sharepoint中分配任务时的标准电子邮件通知是可以发送的。
奇怪的是,我已经使用计时器作业尝试了这个SendEmail方法,并且该方法工作正常。
如果我需要添加到上面的方法中,请有人帮助我。
感谢。
答案 0 :(得分:0)
尝试在提升的权限范围内获取Web引用。
答案 1 :(得分:0)
我找不到这个问题的根源。 我决定创建2个工作流程:第一个是使用启动参数发送电子邮件(使用sharepoint designer构建)。第二个是启动第一个工作流程的工作流程。
它现在正在运行。