加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 08:05:58 所属栏目:百科 来源:网络整理
导读:我为客户建立了一个网站,他们想要一个自定义的时事通讯工具.构建工具很简单,但我不确定如何发送电子邮件. 我设置了一个测试页面,并设法使用System.Net.Mail命名空间向我自己发送测试电子邮件.我尝试将此代码应用于简报页面上的循环,但结果却是一项相当困难的
我为客户建立了一个网站,他们想要一个自定义的时事通讯工具.构建工具很简单,但我不确定如何发送电子邮件.

我设置了一个测试页面,并设法使用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服务或类似的东西.如果您在共享主机上,这可能是不可能的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读