我有一个数据录入和编辑的形式,并在每个数据录入或更新事件,我要发送电子邮件到收件人的动态列表。我一直在发送电子邮件只要用户点击保存或编辑按钮,但我想到的第一个数据保存到数据库中,再后来发送电子邮件。我想部分原因这样做是为了提高应用程序的电子邮件发送的响应时间往往会比需要的时间长。

做了一些事一些如何与此相关的任何一个,有没有实施什么更好的方式相似或不人知道这样。

一个很好的教程

在电子邮件主体是HTML格式。

有帮助吗?

解决方案

我同意关于使用一个服务和一个消息队列CK,但也有一些替代品。

一种方法是使用一种服务,轮询以规则的间隔数据库。这可以避免在消息队列以更高的CPU负载(该服务将做许多不必要的数据库调用)的成本。

您也可以直接使用一个数据库触发器或在数据库中计划的作业数据库做到这一点。用C#编写,运行存储过程SQL Server支持的最新版本或Vb.Net那么你很可能重用太多现有的代码在这里。

最后,你可以去一个简单的解决方案,你做的电子邮件发送在你的asp.net应用程序一个单独的线程。这样,您就可以避免服务应用程序的需要,您可以重用代码或多或少因为它是今天。

其他提示

您可以编写一个Windows服务来处理发送电子邮件,然后使用消息队列从您的应用程序服务传递数据的方法。即你的应用程序了保存数据,然后添加一个消息队列。服务不断轮询消息的队列,发送每一个作为电子邮件。

要做到这一点写入到数据库,然后将消息放入队列,告诉电子邮件服务(书面作为Windows服务),有邮件发送一个方式。电子邮件服务,然后会谈到数据库中找到它实际上需要做的。这样可以使从该web应用程序的电子邮件服务,并且还避免轮询。

这是在该队列的消息作为触发而不是包含电子邮件信息略有不同,CK的溶液。这样可以使网络应用程序和电子邮件服务在一定程度上的装置,以及电子邮件服务可以由多个客户端,而无需观察(并保持在与步骤)相同的电子邮件消息格式每个客户端被重新使用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top