如何使用 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 会是这样的:
BackgroundJob.Schedule(
() => SendMail(),
new DateTime(2017, 27, 03, 11, 00, 00));
