在特定日期触发电子邮件

时间:2010-05-20 17:25:34

标签: c# asp.net

我有C#网络应用程序,我希望它在特定日期发送电子邮件,例如如果设备未在到期日返回。数据在MS SQL数据库中。

我已经完成了所有的电子邮件代码,我只是好奇如何触发这封电子邮件,比如在特定日期的COB之后?

谢谢,

埃里克

4 个答案:

答案 0 :(得分:2)

您创建的应用程序会查询数据库,查找今天应发送的所有电子邮件并发送电子邮件。然后,您可以使用任务计划程序安排该应用程序每天运行。

答案 1 :(得分:2)

创建一个作为计划任务运行的小型控制台应用程序。

它会执行以下操作:

  1. 检查电子邮件数据库中是否有未发送的电子邮件
  2. 检查每封未发送的电子邮件是否为发送日期
  3. if发送日期等于DateTime.Now,然后发送电子邮件
  4. 将电子邮件标记为已发送
  5. 重复foreach电子邮件
  6. 应用程序退出然后根据计划任务的设置再次运行
  7. <强>更新

    你提到你想用触发器来做这件事。我以前从未这样做过,但已经调查过了。我采用了控制台应用程序方法。我更喜欢这个。但 here 是我在触发器方法上找到的链接。

答案 2 :(得分:0)

Quartz scheduler是一个不错的免费c#开源选项。 关注链接: http://quartznet.sourceforge.net/

答案 3 :(得分:0)

如果没有您可以观察到的数据库中的某些信息更改,您将最终使用计划任务,服务或数据库作业执行此操作。

我甚至不打算使用C#,因为SQL服务器具有发送电子邮件的能力。只需在SQL服务器中设置一个作业,该服务在业务结束后每天运行,创建未发送邮件的游标,并使用本机能力发送它们在SQL服务器中。