无法在自定义工作流sharepoint 2010中发送电子邮件

时间:2011-10-06 09:32:46

标签: c# sharepoint sharepoint-2010 sharepoint-workflow

在自定义工作流程中使用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方法,并且该方法工作正常。

如果我需要添加到上面的方法中,请有人帮助我。

感谢。

2 个答案:

答案 0 :(得分:0)

尝试在提升的权限范围内获取Web引用。

答案 1 :(得分:0)

我找不到这个问题的根源。 我决定创建2个工作流程:第一个是使用启动参数发送电子邮件(使用sharepoint designer构建)。第二个是启动第一个工作流程的工作流程。

它现在正在运行。