繁体   English   中英

你如何从 ASP.NET 发送大量电子邮件?

[英]How do you send mass emails from ASP.NET?

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

我设置了一个测试页面,并设法使用 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 应用程序提供一些喘息空间。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM