net定时发送邮件代码的案例分析

  介绍

这篇文章主要介绍了。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定时发送邮件代码的案例分析