自购买之日起 12 个月后向客户发送通知电子邮件的最直接方式是什么?
我们的 Web 服务器运行一个连接到 SQL Server 的 ASP.NET MVC 3 网站。目前我们每周一手动运行一个通知过期用户的网页。
到目前为止,这是我想到的选项:
- 每天使用任务计划程序运行网页
- 构建一个控制台应用程序,不断检查计时器并最终发送通知
- 构建一个像 2) 这样的 windows 服务,在失败的情况下可以自动重启
我错过了一些更容易的东西吗?
谢谢。
自购买之日起 12 个月后向客户发送通知电子邮件的最直接方式是什么?
我们的 Web 服务器运行一个连接到 SQL Server 的 ASP.NET MVC 3 网站。目前我们每周一手动运行一个通知过期用户的网页。
到目前为止,这是我想到的选项:
我错过了一些更容易的东西吗?
谢谢。
我在以前的公司也遇到过同样的问题。最后,我们选择了任务计划程序。主要原因是任务计划程序是在 Windows 中处理重复性任务的标准机制,因此在未来比其他选项更易于维护。
我们的控制台应用程序每天由任务计划程序运行,它被设计为“智能”。我的意思是聪明。
在内部,代码类似于
Linq to get all the users that deserved an email
For each user
Send the email, mark it as sent in DB and close transaction
If email fails Write to log.
Next
Write log with stats
这种方式更慢但更安全。如果它必须向 4000 个用户发送电子邮件并且在用户 1337 中失败,那么我们会记录发生的事情,并且下次执行时它将从 1338 恢复。
在我们的系统登录一个文件夹中,我们通常每天都有一个条目,内容如下:
电子邮件进程由调度程序于 02:00 开始。已发送 4000 封电子邮件,0 封失败。
如果某事失败:
电子邮件进程由调度程序于 02:00 开始。已发送 3999 封电子邮件,其中 1 封失败。发送给用户 xxxxx 的电子邮件失败。原因:电子邮件地址“joeBlogs@@gmail.com”不正确。