定期发送自动电子邮件
本文关键字:电子邮件 | 更新日期: 2023-09-27 17:56:01
我有带有PostgreSQL数据库的Windows服务器。我在数据库中存储了包括合同到期日在内的员工数据。我想在到期日前 30 天为每位员工发送一封自动电子邮件。(每个员工都有一个电子邮件帐户)。最好的方法是什么?我正在考虑执行以下操作,您能否告知这是否是最好的方法,以及是否需要回答这些问题:
- 构建 WinForm C# 应用程序执行以下操作:
-
每天访问PostgreSQL(我知道如何处理Postgresql,但是
how to make it per each new day (schedule task?)
?) -
将计算机日期与数据库中的所有到期日期进行比较
- 如果差额等于或小于 30 天,则自动邮件将发送给员工。(
how to send emails using C#
}
正如
@Middas所建议的那样,编写一个简单的控制台应用程序将负责在应用程序外部进行调度。
一个简单的控制台应用程序是可以的,由Windows计划程序或第三方计划程序计划。
要发送电子邮件,您可以
- 使用 .net 提供的 SMTPClient 命名空间发送电子邮件
- 使用第三方服务,如亚马逊 SES
您可以使用 Quartz.NET 来计划负责发送电子邮件的方法。
Quartz.NET 使用 cron 时间来配置何时执行您的代码。
在网站上有一些例子。
创建 .Net 控制台应用程序,该应用程序触发对数据库的查询,从而引入合同在 30 天内到期的所有员工记录,这不是一件容易的事吗?使用 Windows 计划程序计划在每天的特定时间运行。
现在,要用 C# 发送电子邮件,请尝试以下代码段。
MailMessage mailObj = new MailMessage(strFrom, strTo, strSubject, strBody);
SmtpClient SMTPObj = new SmtpClient(IPAddress,port);
try
{
SMTPObj.Send(mailObj);
}
catch (Exception ex)
{
//Handle Exception
}
希望有帮助米林德
我会按照您的建议使用Windows服务进行操作。 将服务计时器设置为 30 Seond,然后检查时间是否在 00:00:00 和 00:00:00 之间,发送电子邮件。这意味着您不必尝试在需要时触发elapsed
事件。