如何按计划使用Windows服务实现批量邮件?

时间:2011-04-12 04:12:03

标签: asp.net windows-services bulk-mail

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

如果尚未完成,请注意问题:What is the best way to send large batches of emails in ASP.NET?