访问Web应用程序数据库的批处理电子邮件进程的最佳方法

时间:2011-12-13 17:56:20

标签: c# email batch-processing

我有一个C#网络应用程序需要一个批量生成的夜间电子邮件流程 - 我正试图找出最佳方法。

在我过去管理的应用程序中,我们有一个单独的电子邮件程序来完成生成,并计划与服务器的任务计划程序一起运行。这个问题是很多DAL在Web应用程序和预定程序之间重复。

我想知道是否有人更接近这种情况,或者是否有人有任何建议。我一直认为必须有更好的方法。

谢谢!

2 个答案:

答案 0 :(得分:0)

如果您不想使用单独项目发送电子邮件的唯一原因是常见的Dal代码,那么将Dal代码分解为单独的项目,并让两个应用程序共享一些代码库。

尝试设置您的Web应用程序以进行预定处理将是痛苦和不稳定的。如果您真的不想拥有共享的Dal lib,那么在您的Web应用程序中设置一个Web服务,该服务可以由批量发送电子邮件的计划任务调用。

但我可以从个人经验中说,从长远来看,你会更乐意分开你的dal并为这两个应用程序使用共享代码库

答案 1 :(得分:0)

如果您使用的是SQL Server,它完全可以自行发送电子邮件。参见

将待处理的邮件排入桌面。以您希望的方式格式化主体并将其存储为待处理电子邮件表中的列。一旦为已挂起的电子邮件队列设置了架构,编写一个作为周期性任务执行的存储过程来迭代待处理的电子邮件队列,发送每封电子邮件并将其从队列中删除是非常简单的。您可以使用SQL Server自己的任务计划程序或Windows计划任务守护程序。如果电子邮件非常重要,请不要忘记在解决方案中包含日志记录。

有时将消息移动到存档表是有用的,以便在必要时允许重新发送(不要忘记为此配置清除策略和代理)。

我有一个这样的系统设置。这个任务每隔几分钟就会运行一次,而不是每晚喷出电子邮件。