【问题标题】:Processing large numbers of emails from an asp.net site处理来自 asp.net 站点的大量电子邮件
【发布时间】:2010-09-29 15:14:34
【问题描述】:

我正在开发的网站每天将发送数万封电子邮件(而且这个数字还会增加)- 注册、通知、警报等。我将有一个专门的服务器箱,它将实际生成和发送电子邮件通过来自 asp.net 应用程序的请求(asp.net 应用程序在电子邮件箱上调用 WCF 方法并为电子邮件提供各种参数)。 现在,我正在尝试找出在电子邮件服务器上对这些电子邮件作业进行排队的最佳方式。来自 asp.net 应用程序的调用必须是异步的,以便 asp.net 应用程序不等待电子邮件服务器创建和发送实际电子邮件。 最初我只是为每个电子邮件作业请求创建一个工作线程,但电子邮件的数量会非常高,我不确定创建数百个并发线程是否是一个好主意。我的下一个想法是使用 MSMQ,但我不确定它的性能和可扩展性。

有任何想法/制作示例吗?

谢谢!

【问题讨论】:

    标签: asp.net email


    【解决方案1】:

    在之前的工作中,我们必须将消息排队等待传递,就像您解释的那样。我们决定创建一个代表每条消息的数据库记录。在创建消息时,我们在 .NET 中创建了邮件消息,然后将其保存到数据库中。一个单独的进程(内置于 .NET 中的 Windows 服务)将定期检查是否有消息要发送(交付日期已过,状态未发送)。然后,它会根据从存储过程中接收到的信息重新创建邮件消息,并按照自己的方式发送消息。

    返回准备发送的消息的过程还根据调用的日期和时间执行节流逻辑(我们允许在晚上和周末使用比白天更多的带宽)。

    我们还需要跟踪退回、邮件打开和点击率,这意味着有一个代表电子邮件的数据库记录是必要的,这样我们就可以将事件(退回、打开、点击)与各个电子邮件和收件人联系起来。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-05
      • 1970-01-01
      • 2013-11-26
      • 1970-01-01
      • 2011-07-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多