在特定时间发送电子邮件



我想使用SMTP服务器发送电子邮件,但要在特定时间内。是否可以设置一些选项,以便它将在SMTP服务器上的队列中,直到特定的时间和日期?

想法是避免在数据库中使用Windows服务或额外的表

MailMessage message = new MailMessage("no-reply@tttt.com", "xxxx@gmail.com");
message.BodyEncoding = System.Text.Encoding.UTF8;
message.IsBodyHtml = true;
message.Subject = "Publishing Notification";
message.Body = "tes";
message.DeliveryNotificationOptions = DeliveryNotificationOptions.Delay;
SmtpClient client = new SmtpClient("xxxx", Int32.Parse("25"));
client.Send(message);

假设您有一个进程来托管它,那么在给定时间执行某些内容是一个简单的问题。但似乎您的客户拒绝到达那里。有两种方法可以解决此问题,而无需:

  • 使用 Sql 服务器作业执行数据库邮件任务。这可能是一个非常容易的入口,具体取决于数据的来源。
  • 使用计划任务执行命令行程序。或者使用 Sql 作业管理器来执行程序,如果在其中获取 sql 作业比建立计划任务更容易。

Quartz.NET 是一个很棒的库,我们经常使用它,但你仍然需要一个持续运行的服务来执行那里的计划任务。因此,如果您可以在您的 Web 应用程序上搭载它,Quartz 就可以工作,但如果不是,那么您将考虑编写服务。从那里开始,您最好将其作为计划任务,因为除了计划之外,没有理由将其作为服务。

最新更新