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

本文关键字:电子邮件 处理 最佳 方法 web 应用程序 数据库 访问 | 更新日期: 2023-09-27 18:17:38

我有一个c# web应用程序,需要一个夜间批量生成的电子邮件过程,我正在努力找出最好的方法。

在我过去管理的一个应用程序中,我们有一个单独的电子邮件程序来生成,并计划与服务器的任务调度程序一起运行。这样做的问题是,大量的DAL在web应用程序和计划程序之间是重复的。

我想知道是否有人有更好的方法来解决这个问题,或者是否有人有任何建议。我一直在想一定有更好的办法。

谢谢!

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

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

试图设置你的web应用程序来做预定的处理将是痛苦和脆弱的。如果你真的不想有一个共享的数据库,那么在你的web应用程序中设置一个web服务,它可以被一个计划任务调用,批量发送电子邮件。

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

如果你正在使用SQL Server,它完全能够自己发送电子邮件。看到

    数据库邮件
  • 数据库邮件和SQL邮件存储过程
  • 数据库邮件配置文件

将待处理邮件排队到一个表中。按照您喜欢的方式格式化正文,并将其存储为未决电子邮件表中的列。一旦为挂起的电子邮件队列设置了模式,编写一个存储过程就非常简单了,该存储过程作为周期性任务执行,迭代挂起的电子邮件队列,发送每个电子邮件并将其从队列中删除。您可以使用SQL Server自己的任务调度程序或Windows计划任务守护进程。如果电子邮件非常重要,不要忘记在你的解决方案中包括登录。

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

我有一个这样设置的系统。这个任务不是每天晚上都发邮件,而是每隔几分钟就发一次。