使用C#构建电子邮件发送应用程序

时间:2009-07-01 07:22:59

标签: c# winforms email

我的任务是统一并简单地从他们的网站发送电子邮件发送公司,并可以自己编辑电子邮件。因此,我正在使用WYSIWYG编辑器对C#Window Form应用程序进行管理以管理所有电子邮件。电子邮件存储在SQL-DB

但我迫切需要一些关于某些发送逻辑的提示和指示。

一些发送是从网站上的注册等触发的动作。但是一些发送是基于间隔的,例如搜索匹配 - 电子邮件通知和其他提醒 - 电子邮件,其间隔从5分钟发送到每个午夜。

我的困境是这样的: 你如何最好地处理基于间隔的发送?您是否可以按照给定的时间间隔执行某种守护或服务检查存储的程序,并在有任何命中时触发发送?如果应用程序可以同时处理电子邮件内容和schedueled sendouts(5分钟检查和每个午夜),我更希望

或者还有其他更聪明的方法来解决基于间隔的发送方式吗?

感谢您提供有关如何解决此问题的提示和指示

5 个答案:

答案 0 :(得分:2)

对于注册电子邮件,您只需添加代码即可将电子邮件发送到用户注册时正在执行的任何内容。

对于预定的电子邮件,有几种方法可以处理它。

如果您认为只是在数据库中管理它是更好的,并且在SQL 2005或更高版本上,则有内置的数据库邮件功能。 http://msdn.microsoft.com/en-us/library/ms175887.aspx
可以通过检查您维护的电子邮件队列的预定作业发送重复的电子邮件。

如果要处理代码中的电子邮件,可以使用System.Net.Mail。可以通过Windows服务或操作系统中的重复任务来处理调度。
http://support.microsoft.com/kb/226795

答案 1 :(得分:1)

谷歌的“C#windows服务” - 一个服务是Windows等效的守护进程,是编写在后台运行的程序的理想方式,在服务器上自动启动,并且不需要用户登录在它开始之前。

一次使服务Thread.Sleep几秒钟,检查是否该关闭,或者是否轮询数据库以发送电子邮件。

http://www.systemnetmail.com/

答案 2 :(得分:1)

尝试http://quartznet.sourceforge.net/

等计划引擎

答案 3 :(得分:0)

某种队列对你来说是理想的。你会把你的请求放在队列中,它会生成。触发器可以将请求放在队列中以及UI中。当然,我希望你通过代码(smtp)

来做到这一点

答案 4 :(得分:0)

这是一个非常广泛的问题,但如果您使用的是SQL Server,则内置了很多电子邮件选项。还有内置的队列和调度程序。