c# - SendEmail 方法不起作用

标签 c# sharepoint sharepoint-2007

我正在编写一个在整个应用程序生命周期内发送大量电子邮件的应用程序。

用户提示该应用程序真的没有响应,而且通常很慢。我唯一能想到的原因是大量的电子邮件发送。所以我想我可以通过在不同的线程中发送电子邮件来解决问题!

我在 SPUtility 帮助程序类中使用 SendEmail 方法。现在,我有一个看起来像这样的方法:

public static void SendEmail(SPWeb web, string to, string subject, string body)
{

    //Some logic goes here
    System.Threading.ThreadPool.QueueUserWorkItem(o =>
    {
        SPUtility.SendEmail(web, false, false, to, subject, body, false);
    });
}

这个方法是在一个 DLL 中定义的,它被许多不同的 webparts 调用。

但这行不通。如果我删除 QueueUserWorkItem 位,让它在线程外发送电子邮件,它就像一个魅力,但话又说回来,它很慢。

我该如何解决这个问题?

最佳答案

我怀疑你最好使用 MailMessage Class (System.Net.Mail)

MailMessage mess = 
    new MailMessage(
        SPContext.Current.Site.WebApplication.OutboundMailReplyToAddress, 
        sendTo, 
        subject, 
        message);  
mess.IsBodyHtml = true;  
SmtpClient smtp = 
    new SmtpClient(
        SPContext.Current.Site.WebApplication.OutboundMailServiceInstance.Server.Address);  
smtp.Send(mess);

这篇 MSDN 帖子与您的情况相似,Sending Email using SPUtility.SendEmail slow in production

关于c# - SendEmail 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6196114/

相关文章:

c# - RDLC 报告超链接在浏览器中不起作用

c# - 无法在 .NET Core MVC 中发布数据

c# - 如何使用 c# 导入 SPWeb 以具有与 PowerShell 相同的行为?

javascript - SharePoint TextField ClientID 更改?

asp.net - SharePoint Web 部件自定义属性在页面重新加载后才会生效

sharepoint - 为什么 SPList 的 LastItemModifiedDate 与列表中显示的修改日期不同?

带有共享点 7 的 html5 css3

c# - 如何使用 HTML unicode 转义来停止 ASP.NET Core 2 MVC 的 Razor 引擎?

sharepoint - 从 Sharepoint 站点删除规范链接

c# - 如何访问列表内的类内的变量?