首页 > 学院 > 开发设计 > 正文

.NET定时发送邮件

2019-11-14 14:13:17
字体:
来源:转载
供稿:网友

添加一个全局应用程序类Global.asax

代码会在访问网站时运行

Global.asax代码:

 1     void application_Start(object sender, EventArgs e) 2     { 3         // 在应用程序启动时运行的代码 4         System.Timers.Timer timer = new System.Timers.Timer(3600000);//设计时间间隔,如果一个小时执行一次就改为3600000 5         timer.Elapsed += new System.Timers.ElapsedEventHandler(Send); 6         timer.AutoReset = true; 7         timer.Enabled = true; 8     } 9 10     void Application_End(object sender, EventArgs e)11     {12         //  在应用程序关闭时运行的代码13         System.Threading.Thread.Sleep(5000);14         string strUrl = "服务器地址";15         System.Net.HttpWebRequest _HttpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(strUrl);16         System.Net.HttpWebResponse _HttpWebResponse = (System.Net.HttpWebResponse)_HttpWebRequest.GetResponse();17         System.IO.Stream _Stream = _HttpWebResponse.GetResponseStream();//得到回写的字节流18         _HttpWebResponse.Close();19     }20 21     void Application_Error(object sender, EventArgs e)22     {23         // 在出现未处理的错误时运行的代码24 25     }26 27     void session_Start(object sender, EventArgs e)28     {29         // 在新会话启动时运行的代码30 31     }32 33     void Session_End(object sender, EventArgs e)34     {35         // 在会话结束时运行的代码。 36         // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为37         // InPRoc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer38         // 或 SQLServer,则不引发该事件。39 40     }41 42     private void Send(object sender, System.Timers.ElapsedEventArgs e)43     {44         switch (DateTime.Now.Hour)45         {46             case 0:47             case 24:48                 SendEMail();49                 break;50             //default:51             //    SendEMail();52             //    break;53         }54     }55     private void SendEMail()56     {57         string mailFrom = System.Configuration.ConfigurationManager.AppSettings["MailFrom"].ToString();58         string mailUser = System.Configuration.ConfigurationManager.AppSettings["MailUser"].ToString();59         string mailPassWord = System.Configuration.ConfigurationManager.AppSettings["MailPassword"].ToString();60         string hostip = System.Configuration.ConfigurationManager.AppSettings["MailHost"].ToString();61 62         List<string> mailAddress = new List<string>();63         string mailSubjct = "邮件主题";    
string mailBody = "邮件内容:";
mailAddress.Add("邮件地址");string strReturn = sendMail(mailSubjct, mailBody, mailFrom, mailAddress, hostIP, mailUser, mailPassword, false);64 }
sendMail方法
 1 public static string sendMail(string mailSubjct, string mailBody, string mailFrom, List<string> mailAddress, string hostIP, string username, string password, bool ssl) 2         { 3             string str = ""; 4             try 5             { 6                 MailMessage message = new MailMessage 7                 { 8                     IsBodyHtml = true, 9                     Subject = mailSubjct,10                     Body = mailBody,11 12                     From = new MailAddress(mailFrom)13                 };14                 for (int i = 0; i < mailAddress.Count; i++)15                 {16                     message.To.Add(mailAddress[i]);17                 }18                 SmtpClient client = new SmtpClient19                 {20                     EnableSsl = ssl,21                     UseDefaultCredentials = false22                 };23                 NetworkCredential credential = new NetworkCredential(username, password);24                 client.Credentials = credential;25                 client.DeliveryMethod = SmtpDeliveryMethod.Network;26                 client.Host = hostIP;27                 client.Port = 0x19;28                 client.Send(message);29             }30             catch (Exception exception)31             {32                 str = exception.Message;33             }34             return str;35         }

 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表