【问题标题】:How to send automatic email on daily ,weekly and monthly bases?如何在每日、每周和每月的基础上发送自动电子邮件?
【发布时间】:2011-02-27 14:46:49
【问题描述】:

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

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

非常感谢您的想法。

【问题讨论】:

  • 您真的需要从 .NET 应用程序发送电子邮件吗?其他选项:从 SQL Server 作业发送。

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


【解决方案1】:

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

在您的服务中,有一个计时器以您需要的任何分辨率(每分钟/每小时/每天等)触发,并且在计时器滴答声中甚至可以发送您的电子邮件。

manytutorialsforcreatingwindowsservices与.NET。

【讨论】:

  • 这不是过度工程吗? Windows 任务计划程序有什么问题?
【解决方案2】:

Windows 服务可以解决问题。 Windows 服务的一个很好的好处是它在 Windows 启动时启动(或者无论如何都可以设置)。所以机器可以完全无人看管(作为一个好的服务器应该),并且不需要任何人登录它来运行服务。因此,如果这对您的方案来说是一个重要的考虑因素,那么 Windows 服务可能就是您要走的路。

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

        创建一个控制台应用程序,该应用程序将从 Windows 任务调度程序启动。 IMO,创建 Windows 服务不必要地复杂,因为您只是让程序执行以响应时间间隔;不是您需要“侦听器”类型应用程序的其他不可预测的外部事件。亲!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-04-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多