gpt4 book ai didi

c# - 如何从 ASP.NET 发送大量电子邮件?

转载 作者:太空狗 更新时间:2023-10-29 20:25:32 25 4
gpt4 key购买 nike

我为客户建立了一个网站,他们想要一个定制的时事通讯工具。构建工具很简单,但我不确定如何发送电子邮件。

我设置了一个测试页面,并设法使用 System.Net.Mail 命名空间向自己发送了一封测试电子邮件。我尝试将这段代码应用到时事通讯页面上的一个循环中,但事实证明这是一项相当困难的任务。电子邮件发送循环会在发送电子邮件时锁定整个站点大约一个小时。有时它会中途中止循环,并且某些电子邮件不会发送。

我尝试在另一个线程上启动循环。

protected void btnSendNewsletter_Click(object sender, EventArgs e)
{
Thread t = new System.Threading.Thread(new ThreadStart(SendEmails));
t.Start();
}

但这仍然使网站变慢,并且有中途中止的习惯。群发邮件的常用方法是什么?我确定我没有做对。

我对 .NET 中的电子邮件领域还很陌生。

最佳答案

对于此类任务,您最好将一堆作业添加到队列中。然后运行一个线程,从队列中提取 x 个作业,处理它们(即发送电子邮件),然后休眠一段时间。这将为您的 Web 应用程序提供一些喘息的空间。

如果您使用的是数据库,则可以创建电子邮件队列表来存储作业。我更喜欢使用这种存储而不是内存,以防应用程序由于某种原因回收或抛出异常......至少你可以从你离开的地方继续。

通常,运行工作线程的进程不会是网络应用程序本身。这将是一个 Windows 服务或类似的东西。如果您使用的是共享主机,这可能无法实现。

关于c# - 如何从 ASP.NET 发送大量电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5902643/

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