C# 每天在特定时间向管理员发送电子邮件/当库存水平较低时通过电子邮件通知管理员
是否有人知道我将如何编写此代码: 每天在特定时间向管理员/经理发送电子邮件,包括数据库库存表中的一个表-该表只有四份库存,因此他们将被告知其库存水平以及是否需要重新订购 否则 如果这四个库存水平中有一个较低,则会向经理/管理员发送电子邮件,通知他们认证材料/库存已达到最低水平,并重新订购 我有发送电子邮件的代码:C# 每天在特定时间向管理员发送电子邮件/当库存水平较低时通过电子邮件通知管理员,c#,asp.net,C#,Asp.net,是否有人知道我将如何编写此代码: 每天在特定时间向管理员/经理发送电子邮件,包括数据库库存表中的一个表-该表只有四份库存,因此他们将被告知其库存水平以及是否需要重新订购 否则 如果这四个库存水平中有一个较低,则会向经理/管理员发送电子邮件,通知他们认证材料/库存已达到最低水平,并重新订购 我有发送电子邮件的代码: protected void Button1_Click1(object sender, EventArgs e) { MailMessage mail = new MailMessa
protected void Button1_Click1(object sender, EventArgs e)
{
MailMessage mail = new MailMessage(from.Text, to.Text, subject.Text, body.Text);
SmtpClient Client = new SmtpClient(smtp.Text);
Client.Port = 587;
Client.Credentials = new System.Net.NetworkCredential(username.Text, password.Text);
Client.EnableSsl = true;
Client.Send(mail);
Response.Write("<script LANGUAGE='JavaScript' >alert('Mail Sent')</script>");
}
欢迎任何帮助
谢谢大家! 您需要一个调度器,这样您就可以安排每天的任务来检查库存水平,并在需要时发送电子邮件。如果希望将所有内容都保存在asp.net应用程序中,可以使用hangfire实现这一点。Hangfire是一个调度程序。检查 代码如下所示
RecurringJob.AddOrUpdate(
() => {
//TODO: Check your Stock Table DB
var from = "noreply@<yourcompany>.com"
var to = "admin@<yourcompny>.com"
var subject = "Low stock"
var body = "The following items are low in stock : "
// TODO: append items to body variable
MailMessage mail = new MailMessage(from, to, subject, body);
SmtpClient Client = new SmtpClient(smtp.Text);
Client.Port = 587;
Client.Credentials = new System.Net.NetworkCredential(username.Text, password.Text);
Client.EnableSsl = true;
Client.Send(mail);},
Cron.Daily);
});
使用Windows服务监视数据、小时和数据库
private void mainTimer_Tick(object sender, EventArgs e)
{
try
{
if (ConfigsHTM["exechour"] != null)
{
if (DateTime.Now.ToString("HH:mm:ss") == ConfigsHTM["exechour"].ToString())
{
ClassProcessing clsProc = new ClassProcessing();
clsProc.StartDate = DateTime.Now.AddDays(-1);
clsProc.EndDate = DateTime.Now.AddDays(-1);
clsProc.ProcessAll();
if (StatusHTM.Count > 0)
StatusHTM.Clear();
StatusHTM.Add("locationstatus","Todas as Unidades");
StatusHTM.Add("typestatus","Agendado");
StatusHTM.Add("exechourstatus", DateTime.Now.ToString("F"));
if (clsProc.ReprocessingDone)
StatusHTM.Add("statusstatus","OK");
else
StatusHTM.Add("statusstatus", "Falhou");
ClassStatus clsStt = new ClassStatus();
clsStt.StatusHT = StatusHTM;
clsStt.SaveStatus();
GetStatus();
}
}
}
catch (Exception ex)
{
ClassLog clsLog = new ClassLog();
clsLog.EventData = "Falha ao Iniciar a Execução do Aplicativo";
clsLog.ErrorLog();
clsLog.EventData = ex.ToString();
clsLog.ErrorLog();
}
}
您可以检查Quartz.NET以获取计划服务任务。请参阅搜索“调度ASP.NET代码来运行”之类的东西,您只需要一种自动程序,它可以按预定的时间间隔,即在特定的预定义的时间间隔运行,并检查是否需要发送电子邮件,如果是,发送一个。有很多不同的方法可以实现这一点,你可以很容易地进行研究。非常感谢!这个代码会去哪里?在显示表格的库存表单的按钮或页面加载下。您可以在Global.asax受保护的无效应用程序上添加此代码。\u Startobject sender,EventArgs e{//add code here}非常感谢!您知道如何使用循环来检查数据库中库存表中的4种物料是否达到最低级别,我会将其设置为200?非常感谢您您应该标记此问题和答案,并创建一个新问题