我如何使用 mvc3 中的数据库数据定期发送邮件
问问题
1066 次
3 回答
2
有多种方法可以实现这一点,一种很好的方法是编写一个 Web 服务来完成它并使用 Quartz Schduler安排它
于 2012-06-18T13:23:24.910 回答
0
您可以添加一个 Timer 并在 application start My Sample 中启动它:
在 Global.asax 中:
void Application_Start(object sender, EventArgs e)
{
// Create a new Timer with Interval set to 300 seconds(5 Minutes).
System.Timers.Timer aTimer = new System.Timers.Timer(5 * 60 * 1000);
aTimer.Elapsed += new System.Timers.ElapsedEventHandler(OnTimedEvent);
aTimer.AutoReset = true;
aTimer.Enabled = true;
aTimer.Start();
}
private static void OnTimedEvent(object source, System.Timers.ElapsedEventArgs e)
{
//Send Email;
}
更新答案
如何发送邮件:
var mailObj = new System.Net.Mail.MailMessage(from, to, subject, body);
//if your host has smtp server
var SMTPServer = new System.Net.Mail.SmtpClient("localhost");
//if your host has not smtp server and you want use gmail
var googleSMTPServer = new System.Net.Mail.SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new System.Net.NetworkCredential("gmailAddress@Gmail.com", "gmailPassword")
};
try
{
SMTPServer.Send(mailObj);
// OR
googleSMTPServer.Send(mailObj);
}
catch (Exception ex)
{
//
}
笔记
jgauffin 是对的!应用程序池可以随时回收。如果您的站点在 20 分钟内没有任何访问者,IIS 会自动停止应用程序池。您可以在 IIS 中禁用它
于 2012-06-18T13:22:42.510 回答
0
试试MvcMailer NuGet 包。它允许您将 MVC 视图呈现为电子邮件正文
于 2012-06-18T13:21:50.123 回答