这是我之前发送邮件的代码:
[HttpPost] public ActionResult Send(string EmailTo, string EmailCC,string rid) { try { MailMessage message = new MailMessage(); var smtpClient = new SmtpClient(); message.To = EmailTo; message.Cc = EmailCC; //抄送到
message.Subject = SubjectHtml(rid)+ "大修再鉴定" + DateTime.Now.ToString("yyyy-MM-dd") + "日日报"; message.IsBodyHtml = true; message.Body = BodyHtml(rid); smtpClient.Send(message); return Json(new { result = true, message = "发送成功!" }, JsonRequestBehavior.AllowGet); } catch (Exception ex) { this.Log.LogError(ex); return Json(new { result = false, message = "发送失败!" }, JsonRequestBehavior.AllowGet); } }如何做到定时发送呢?因为这里是接收人,抄送人是要可选的,那个输入框是点击可以选择公司人员的,故用Timer定时器时这种有参数的邮件如何定时发呢?求解!!
做到一个队里里面。
timer轮询
能说详细点不?
之前这样写可以定时,但这些有参数的要怎么处理呢?
void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
System.Timers.Timer timer = new System.Timers.Timer();
timer.Interval = 1000;
timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
timer.AutoReset = true;
timer.Start();
}
void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
if (DateTime.Now.ToString("HH:mm:ss") == "23:00:00")
{
(sender as System.Timers.Timer).Interval = 23 * 60 * 60 * 1000.0; //将时间间隔改为23小时,23小时后重新发生timer_Elapsed事件。
// sendEmail(); 此处邮件发送是固定的!
}
else
(sender as System.Timers.Timer).Interval = 1000;
}
你好这种带参数的Email在这里怎么处理呀!
@renshen4322: 放在数据库是,一直查找数据库中是否要处理的任务 和需要的参数
@段小贤: 我是把数据库的东西作为邮件发出去,本来就是发的数据库的东西,这不是废话吗,这个参数,怎么处理。
自己解决了