如何使用mvc3中的数据库数据每五分钟发送一次邮件

时间:2012-06-18 13:17:18

标签: c# asp.net-mvc-3

如何使用mvc3中的数据库数据定期发送邮件

3 个答案:

答案 0 :(得分:2)

有多种方法可以实现这一目标,其中一种方法是编写Web服务来执行此操作并使用Quartz Schduler

进行计划

答案 1 :(得分:0)

试试MvcMailer NuGet package。它允许您将MVC视图呈现为电子邮件正文

答案 2 :(得分:0)

您可以添加一个Timer并在应用程序启动时启动它 我的样本:

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中禁用它