介绍
这篇文章主要介绍了。net定时发送邮件代码的案例分析,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
有时候我们或许会遇到想在某一个时刻给别人发送一封邮件,就像是在生日的时候,但是我们又怕到时候忘记了,这时就应该
使用发送定时邮件的功能,但是这个定时发送邮件功能是怎么实现的呢?下面用两种方式实现。net定时发送邮件代码,具体请看下面内容。
实现思路,需求添加一个全局应用程序类Global.asax
代码会在访问网站时运行
<强> Global.asax代码:强>
空白Application_Start(对象发送方,EventArgs e) {//在应用程序启动时运行的代码 System.Timers。计时器计时=new与system . timers . Timer类();//设计时间间隔,如果一个小时执行一次就改为 计时器。运行+=new System.Timers.ElapsedEventHandler(发送); 计时器。AutoReset=true; 计时器。启用=true; } 空白Application_End(对象发送方,EventArgs e) {//在应用程序关闭时运行的代码 System.Threading.Thread.Sleep (); 字符串strUrl=胺衿鞯刂贰? System.Net。HttpWebRequest _HttpWebRequest=(System.Net.HttpWebRequest) System.Net.WebRequest.Create (strUrl); System.Net。HttpWebResponse _HttpWebResponse=(System.Net.HttpWebResponse) _HttpWebRequest.GetResponse (); 先。流_Stream=_HttpWebResponse.GetResponseStream();//得到回写的字节流 _HttpWebResponse.Close (); } 空白Application_Error(对象发送方,EventArgs e) {//在出现未处理的错误时运行的代码 } 空白Session_Start(对象发送方,EventArgs e) {//在新会话启动时运行的代码 } 空白Session_End(对象发送方,EventArgs e) {//在会话结束时运行的代码。//注意:只有在网络上。配置文件中的sessionstate模式设置为//InProc时,才会引发Session_End事件。如果会话模式设置为StateServer//或,状态"置疑"则不引发该事件。 } 私人空间发送(对象发送方,System.Timers。ElapsedEventArgs e) { 开关(DateTime.Now.Hour) { 案例: 案例: SendEMail (); 打破;//默认值://SendEMail ();//中断; } } 私人空间SendEMail () { (“MailFrom")字符串mailFrom=System.Configuration.ConfigurationManager.AppSettings .ToString (); (“MailUser")字符串mailUser=System.Configuration.ConfigurationManager.AppSettings .ToString (); (“MailPassword")字符串mailPassword=System.Configuration.ConfigurationManager.AppSettings .ToString (); (“MailHost")字符串hostIP=System.Configuration.ConfigurationManager.AppSettings .ToString (); ListmailAddress=new List (); 字符串mailSubjct=坝始魈狻? 字符串mailBody=坝始谌?“; mailAddress.Add(“邮件地址“);字符串strReturn=sendMail (mailSubjct、mailBody mailFrom, mailAddress, hostIP, mailUser, mailPassword,假); }
<>强sendMail方法强>
公共静态字符串(字符串,字符串mailBody,字符串mailFrom List字符串hostIP mailAddress,字符串,字符串的用户名,密码,bool ssl) { 字符串str=?“; 试一试 {=new MailMessage MailMessage消息 { IsBodyHtml=true, 主题=mailSubjct, 身体=mailBody, 从=new MailAddress (mailFrom) }; (int i=;我& lt;mailAddress.Count;我+ +) { message.To.Add (mailAddress[我]); }=new SmtpClient SmtpClient客户机 { EnableSsl=ssl, UseDefaultCredentials=false }; NetworkCredential凭据=new NetworkCredential(用户名、密码); 客户端。凭证=凭证; 客户端。DeliveryMethod=SmtpDeliveryMethod.Network; 客户端。主机=hostIP; 客户端。端口=x; client.Send(消息); } 抓住(例外的例外) { str=exception.Message; } 返回str; }
<强>第二种方式:强>
定时发邮件可以用强> <强>计时器来设置时间,放在了<强>全球。asax 强>的<强> Application_Start 强>里面
; 使用System.Timers; 保护无效Application_Start(对象发送方,EventArgs e) { 计时器t=新计时器(60000);//设计时间间隔,如果一个小时执行一次就改为3600000,这里一分钟调用一次 t。运行新ElapsedEventHandler +=(t_Elapsed); t。AutoReset=true; t。启用=true; } 私人空间t_Elapsed(对象发送方,ElapsedEventArgs e) { MailMessage消息=new MailMessage (); 消息。从=Messagefrom; message.To.Add (MessageTo);//收件人邮箱地址可以是多个以实现群发 消息。主题=MessageSubject; 消息。身体=MessageBody; 消息。IsBodyHtml=true;//是否为html格式 消息。优先级=MailPriority.High;//发送邮件的优先等级 SmtpClient sc=new SmtpClient (); sc.Host=皊mtp.sina.com";//指定发送邮件的服务器地址或IP sc.Port=25;//指定发送邮件端口//sc。UseDefaultCredentials=true;//sc。EnableSsl=true; sc.Credentials=新的System.Net。NetworkCredential(“* * @ * *”、“密码“);//指定登录服务器的用户名和密码 sc.Send(消息);//发送邮件 }net定时发送邮件代码的案例分析