gpt4 book ai didi

c# - 来自 asp.net c# 程序的电子邮件非常慢

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:00 25 4
gpt4 key购买 nike

我正在从 asp.net 网页向两个收件人发送一封简单的电子邮件。完成执行大约需要 15 秒。有可能加快速度吗?这是代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;

namespace NihulKriotNS.BLL
{
public class EMailClass
{
//fields
private const string strFrom = "myEmail";
private const string mailServer = "myServer";
private const string userName = "myUserName";
private const string usePass = "myPassword";
//ctors
public EMailClass()
{
}

public void SendEMail(List<string> emailList, string strSubject, string strMessage, bool isHTML)
{
MailMessage msg = new MailMessage();
msg.From = new MailAddress(strFrom);
if (emailList != null && emailList.Count > 0 )
foreach (string em in emailList)
{
msg.To.Add(em);
}
else
return;
msg.Subject = strSubject;
msg.Body = strMessage;
msg.IsBodyHtml = isHTML;
SmtpClient smtp = new SmtpClient(mailServer);
smtp.Credentials = new System.Net.NetworkCredential(userName, usePass);


smtp.Send(msg);
msg.Dispose();
}
}

我尝试使用 smpt.SendAsync 但一点用都没有。我不太确定如何正确使用它。非常感谢。

最佳答案

早些时候,我收到了 Samir Adel 的回答(并在其他我不记得是谁的评论中确认)使用多线程。不幸的是,由于某种原因,这个答案已被删除。我不熟悉线程的主题。我在 Andrew Troelsen 的 Pro C# 2008 和 .NET 3.5 平台一书中查找了这个主题。我想出了以下代码:

Thread backgroundThread = new Thread(new ThreadStart(EMailPrepareAndSend));
backgroundThread.Name = "Secondary";
backgroundThread.Start();

其中 EMailPrepareAndSend 是准备电子邮件的方法,并从中调用 EMail 类中的 SendEmail() 方法,如我的问题所示。这使程序能够立即继续,即使电子邮件尚未发送完毕。感谢 Samir Adel,他的回答让我朝着正确的方向前进。

关于c# - 来自 asp.net c# 程序的电子邮件非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6889811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com