0

我有一个要求,我需要每季度发送 10000 多封邮件。为此,我使用了一个每天触发的 Windows 服务,并且仅在第三个月后才执行邮件功能。我必须从数据库中获取最近三个月的记录,并且需要为每条记录发送一封邮件。

我面临的问题是我使用的邮件服务器不允许批量邮寄。

我如何通过在每次发送之间提供延迟(每分钟 20 封邮件)来有效地做到这一点?

4

1 回答 1

1

有很多方法可以归档这个。我们曾经有一个类似的需求,并通过一个本地服务解决了这个问题,该服务将从一个特殊的数据库表(邮件队列)中获取项目并单独发送每封邮件。队列随着时间的推移被常规业务逻辑填充。必要的锁定也可以通过 db 完成:SCHEDULE 列存储发送邮件的预期预定时间。这样,服务只收集那些“准备好”发送的邮件。发送成功后,使用另一列(SENT_TIMESTAMP)来标记成功。

我们在 ASP 中实现了整个服务,并通过常规的 Windows Task Planner 作业触发了它。在您的情况下,该服务将每分钟启动一次,队列将提供接下来的 20 封邮件。更简单的方法是利用 SQL Server Jobs。SQL Server 也能够将邮件传递到本地 SMTP 服务器。

如果尚未完成,请注意 SO 问题:在 ASP.NET 中发送大量电子邮件的最佳方式是什么?

于 2011-04-12T04:34:12.067 回答