如何每日,每周和每月发送自动电子邮件?

时间:2011-02-27 14:46:49

标签: c# .net visual-studio-2010 windows-services

如何使用c#.net在每日,每周和每月的基础上发送电子邮件?

我正在考虑创建一个Windows服务应用程序,但我不知道该怎么做以及它是否是正确的方法。

非常感谢您的想法。

5 个答案:

答案 0 :(得分:2)

Windows服务可能是最好的选择。

在你的服务中有一个计时器,你可以用你需要的任何分辨率(每分钟/小时/天等)进行激活,并在计时器上打勾甚至发送你的电子邮件。

.NET中有many tutorials for creating windows services

答案 1 :(得分:2)

Windows服务可以解决这个问题。 Windows服务的一个好处是它在Windows启动时启动(或者可以设置为,无论如何)。因此,机器可以保持相当无人值守(作为一个好的服务器应该),并且不需要任何人登录它以使服务运行。因此,如果这对您的方案来说是一个重要的考虑因素,那么也许可以使用Windows服务。

如果您只想创建一个控制台应用程序(通常可以更容易地创建/测试/调试),那么您可以使用本机Windows任务调度程序来安排它。但是,除非我弄错了,否则我认为用户需要登录到机器才能运行。至少在某些情况下。因此,Windows服务可能是无人值守任务的最佳选择。

至于创建服务,Visual Studio应该有一个项目模板。调度将使用Timer处理。

答案 2 :(得分:2)

您还可以使用Windows任务计划程序。 Quartz.Net似乎也是正确的工具(但从未使用它)。

答案 3 :(得分:2)

Windows服务是一个不错的选择。

请记住将状态保存到磁盘(文件或数据库),因为可以重新启动服务(例如,由于重新启动)。例如,您的下一个电子邮件递送是将来的一周,您必须将该日期保存到磁盘。因此,当您的服务器由于3天后的电源故障而关闭并在另一天后恢复时,您的Windows服务仍然可以根据保存到磁盘的日期设置正确的计时器。

答案 4 :(得分:1)

创建一个控制台应用程序,该应用程序将从Windows任务计划程序启动。创建Windows服务是不必要的复杂,IMO,因为您只是让程序执行以响应时间间隔;不是其他不可预知的外部事件,你需要一个'监听'类型的应用程序。吻!

相关问题