C# 使用ASP.Net发送大量电子邮件

C# 使用ASP.Net发送大量电子邮件,c#,asp.net,C#,Asp.net,使用ASP.Net发送大量电子邮件的最佳方式是什么 例如,站点管理员需要向其站点的所有用户发送电子邮件(如新闻稿) 使用ASP.Net 3.5和C#实现这一点的最佳方法是什么?如果我自己写这篇文章,我只需从数据库中获取电子邮件地址,然后使用System.Net.Mail.SmtpClient类进行循环 但是,请确保您了解CAN-SPAM法案,并遵守指导原则 查看此链接>>> 源代码在VB.Net中,但由于MFCL是相同的,因此可以轻松地在CSharp中更改代码。但是,aspx部分保持不变。根据特

使用ASP.Net发送大量电子邮件的最佳方式是什么

例如,站点管理员需要向其站点的所有用户发送电子邮件(如新闻稿)


使用ASP.Net 3.5和C#实现这一点的最佳方法是什么?

如果我自己写这篇文章,我只需从数据库中获取电子邮件地址,然后使用System.Net.Mail.SmtpClient类进行循环

但是,请确保您了解CAN-SPAM法案,并遵守指导原则

查看此链接>>>
源代码在VB.Net中,但由于MFCL是相同的,因此可以轻松地在CSharp中更改代码。但是,aspx部分保持不变。

根据特洛伊的评论进行编辑

您应该使用外部流程发送电子邮件。如果你的邮件列表增加到几百封,你很快就会超时。一旦你进入了长达一千或一百万条记录的列表,你就可以忘记任何单独使用ASP.Net的可行解决方案


我实际上开发了一个windows服务,可以处理发送大量电子邮件。基本上,在ASP.Net中,我在各种db记录中创建了一个活动和一个批处理作业,然后还插入了一个收件人列表。作业完全写入数据库后,其状态将更改,以便Windows服务知道它可以出现并开始处理作业。然后,ASP.Net网站可以随时查看记录,以确定该服务的进展情况。

从经验来看,这是一个非常糟糕的方法。我以前已经测试过它,但如果您想向100多个地址发送电子邮件,请不要考虑它@Spencer如果你要表达不同的意见,至少要提供一些细节,说明你为什么不同意给定的答案。这条信息的关键是有一个排队过程和一个单独的发送过程。我使用了同样的方法(在完全合理的情况下!),在列举大量接收者时,这种方法为防止可能的超时提供了非常宝贵的保障。+1-我采用了完全相同的方法。您必须具有良好的错误处理和恢复能力才能使流程变得健壮,但这是一个很好的策略。我同意,与自己编写代码相比,更倾向于使用外部服务。web服务如何?这是解决这种情况的好方法吗?Web服务仍然只是由Web服务器处理的Web页面,因此您将遇到相同的问题。它们可能有助于将某些功能抽象出来,用于其他项目,但如果希望windows服务正常运行,最终需要使用windows服务。使用密件抄送是一个好方法,但如果您想向1000多个地址发送电子邮件,我不认为这是一个好主意。我将投票支持这一方法,因为从性能的角度来看,它可能比单独发送电子邮件要好。同样,使用@BabakArj的注释,使用循环来建立一个bcc列表到一定数量的条目,然后发送该列表并继续其余的条目,也不会太难。