【问题标题】:Send mass emails with ASP.Net使用 ASP.Net 发送群发电子邮件
【发布时间】:2009-07-29 04:11:44
【问题描述】:

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

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

使用 ASP.Net 3.5 和 C# 的最佳方法是什么?

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    根据 Troy 的评论进行编辑。

    您应该使用外部流程来发送电子邮件。如果您的电子邮件列表增长到只有几百个,您很快就会遇到超时。一旦进入包含一千或一百万条记录的列表,您就可以忘记仅使用 ASP.Net 的任何可行解决方案。

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

    【讨论】:

    • 这条消息的关键是有一个进程用于排队和一个单独的进程用于发送。我使用了相同的方法(在完全合法的情况下!),并且在枚举大量收件人时防止可能的超时的保险非常宝贵。
    • +1 - 我采用了完全相同的方法。您必须有良好的错误处理和恢复,才能使流程稳健,但这是一个很好的策略。
    • 我同意外部服务比自己编码更可取。
    • 网络服务怎么样?对于这种情况,这是一个好方法吗?
    • Web 服务仍然只是由 Web 服务器处理的网页,因此您会遇到同样的问题。它们对于抽象出一些功能以供其他项目使用可能很有用,但如果您希望它正常运行,最终您将需要使用 Windows 服务。
    【解决方案2】:

    如果我自己写这个,我会简单地从数据库中获取电子邮件地址并使用 System.Net.Mail.SmtpClient 类循环。

    不过,请确保您了解 CAN-SPAM 法案并遵守相关指南。

    【讨论】:

    • 从经验来看,这是一个非常糟糕的方法。
    • 我之前测试过,但是如果你想发送邮件到100多个地址就不要考虑了!
    • @Spencer 如果您要表达不同意见,请至少提供一些详细信息,说明您不同意给定答案的原因。
    【解决方案3】:

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

    【讨论】:

    • 使用密件抄送是一种好方法,但我认为如果您想向超过 1000 个地址发送电子邮件,这不是一个好主意。
    • 我要投票赞成这个,因为从性能的角度来看,它可能比发送单独的电子邮件更好。此外,使用@BabakArj 的评论,使用循环为一定数量的条目建立一个密件抄送列表并不会太难,然后将其发送并继续其余的。
    猜你喜欢
    • 2012-04-17
    • 2019-10-16
    • 2011-05-24
    • 2012-01-10
    • 1970-01-01
    • 2012-12-11
    • 2016-09-15
    • 1970-01-01
    相关资源
    最近更新 更多