Skip to main content
 首页 » 编程设计

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

2024年01月26日31tintown

如何使用 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; 
       } 
   } 
} 

下面是我的按钮代码。

<asp:Button ID="btnSendEmail" runat="server" Text="Send email" OnClick="SendEmail" class="btn btn-md btn-danger pull-right" /> 

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

   If(time==11am) 
   { 
     //send mail 
   } 

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

请您参考如下方法:

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

使用hangfire或 Quartz.net

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

hangfire 会是这样的:

BackgroundJob.Schedule( 
    () => SendMail(),  
    new DateTime(2017, 27, 03, 11, 00, 00));