如何在每天的特定时间自动发送电子邮件

maz*_*124 3 c# asp.net email

如何使用 ASP.NET、C#、Webforms 在每天上午 11 点自动发送电子邮件?

我正在单击按钮发送邮件。我的要求是每天上午11点自动发送邮件。使用 C# 代码可以吗?

protected void SendEmail(object sender, EventArgs e)
{
   using (StringWriter sw = new StringWriter())
   {
       using (HtmlTextWriter hw = new HtmlTextWriter(sw))
       {
           gv_TotalAllReg.RenderControl(hw);
           StringReader sr = new StringReader(sw.ToString());
           MailMessage mm = new MailMessage("techhelp@xyz.com", "xyz@xyz.com,xyz1@xyz.com");

           mm.Subject = "Daily Report";

           mm.Body = "Dear Customer, <br><br>Applications received as on: " + ViewState["date"] + ".<hr />" + sw.ToString() + "<br/>Thanks,<br>Support Team.";

           mm.IsBodyHtml = true;
           mm.CC.Add("my@no.com");

           SmtpClient smtp = new SmtpClient();
           smtp.Host = "smtp.gmail.com";
           smtp.EnableSsl = true;

           System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
           NetworkCred.UserName = "no@gmail.com";
           NetworkCred.Password = "n0";
           smtp.UseDefaultCredentials = true;
           smtp.Credentials = NetworkCred;
           smtp.Port = 587;

           smtp.Send(mm);

           lbl_msg.Visible = true;
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

下面是我的按钮代码。

<asp:Button ID="btnSendEmail" runat="server" Text="Send email" OnClick="SendEmail" class="btn btn-md btn-danger pull-right" />
Run Code Online (Sandbox Code Playgroud)

当我单击按钮时,gridview 数据将发送到电子邮件。但我正在尝试像下面的概念。

   If(time==11am)
   {
     //send mail
   }
Run Code Online (Sandbox Code Playgroud)

我搜索了很多,但得到了 Windows 服务相关的示例,但我没有得到这种类型的概念。还有其他办法吗。

Yga*_*bel 5

您必须使用作业调度程序库。

使用hangfireQuartz.net

您将能够在特定时间安排工作。

有了hangfire,它会是这样的:

BackgroundJob.Schedule(
    () => SendMail(), 
    new DateTime(2017, 27, 03, 11, 00, 00));
Run Code Online (Sandbox Code Playgroud)

  • @mazhar124如果你想要快点,我建议你聘请一些经验丰富的开发人员来为你做这件事?!? (3认同)