国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C# > 正文

.NET實(shí)現(xiàn)定時(shí)發(fā)送郵件代碼(兩種方式)

2020-01-24 01:33:55
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

有時(shí)候我們或許會(huì)遇到想在某一個(gè)時(shí)刻給別人發(fā)送一封郵件,就像是在生日的時(shí)候,但是我們又怕到時(shí)候忘記了,這時(shí)就應(yīng)該

使用發(fā)送定時(shí)郵件的功能,但是這個(gè)定時(shí)發(fā)送郵件功能是怎么實(shí)現(xiàn)的呢?下面用兩種方式實(shí)現(xiàn).net定時(shí)發(fā)送郵件代碼,具體請(qǐng)看下面內(nèi)容。

實(shí)現(xiàn)思路、需求添加一個(gè)全局應(yīng)用程序類Global.asax

代碼會(huì)在訪問網(wǎng)站時(shí)運(yùn)行

Global.asax代碼:

void Application_Start(object sender, EventArgs e)  {   // 在應(yīng)用程序啟動(dòng)時(shí)運(yùn)行的代碼   System.Timers.Timer timer = new System.Timers.Timer();//設(shè)計(jì)時(shí)間間隔,如果一個(gè)小時(shí)執(zhí)行一次就改為   timer.Elapsed += new System.Timers.ElapsedEventHandler(Send);   timer.AutoReset = true;   timer.Enabled = true;  }   void Application_End(object sender, EventArgs e)  {   // 在應(yīng)用程序關(guān)閉時(shí)運(yùn)行的代碼   System.Threading.Thread.Sleep();   string strUrl = "服務(wù)器地址";   System.Net.HttpWebRequest _HttpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(strUrl);   System.Net.HttpWebResponse _HttpWebResponse = (System.Net.HttpWebResponse)_HttpWebRequest.GetResponse();   System.IO.Stream _Stream = _HttpWebResponse.GetResponseStream();//得到回寫的字節(jié)流   _HttpWebResponse.Close();  }   void Application_Error(object sender, EventArgs e)  {   // 在出現(xiàn)未處理的錯(cuò)誤時(shí)運(yùn)行的代碼   }   void Session_Start(object sender, EventArgs e)  {   // 在新會(huì)話啟動(dòng)時(shí)運(yùn)行的代碼   }   void Session_End(object sender, EventArgs e)  {   // 在會(huì)話結(jié)束時(shí)運(yùn)行的代碼。    // 注意: 只有在 Web.config 文件中的 sessionstate 模式設(shè)置為   // InProc 時(shí),才會(huì)引發(fā) Session_End 事件。如果會(huì)話模式設(shè)置為 StateServer   // 或 SQLServer,則不引發(fā)該事件。   }   private void Send(object sender, System.Timers.ElapsedEventArgs e)  {   switch (DateTime.Now.Hour)   {    case :    case :     SendEMail();     break;    //default:    // SendEMail();    // break;   }  }  private void SendEMail()  {   string mailFrom = System.Configuration.ConfigurationManager.AppSettings["MailFrom"].ToString();   string mailUser = System.Configuration.ConfigurationManager.AppSettings["MailUser"].ToString();   string mailPassword = System.Configuration.ConfigurationManager.AppSettings["MailPassword"].ToString();   string hostIP = System.Configuration.ConfigurationManager.AppSettings["MailHost"].ToString();    List<string> mailAddress = new List<string>();   string mailSubjct = "郵件主題";    string mailBody = "郵件內(nèi)容:";   mailAddress.Add("郵件地址");string strReturn = sendMail(mailSubjct, mailBody, mailFrom, mailAddress, hostIP, mailUser, mailPassword, false);  }

sendMail方法

 

 public static string sendMail(string mailSubjct, string mailBody, string mailFrom, List<string> mailAddress, string hostIP, string username, string password, bool ssl)   {    string str = "";    try    {     MailMessage message = new MailMessage     {      IsBodyHtml = true,      Subject = mailSubjct,      Body = mailBody,       From = new MailAddress(mailFrom)     };     for (int i = ; i < mailAddress.Count; i++)     {      message.To.Add(mailAddress[i]);     }     SmtpClient client = new SmtpClient     {      EnableSsl = ssl,      UseDefaultCredentials = false     };     NetworkCredential credential = new NetworkCredential(username, password);     client.Credentials = credential;     client.DeliveryMethod = SmtpDeliveryMethod.Network;     client.Host = hostIP;     client.Port = x;     client.Send(message);    }    catch (Exception exception)    {     str = exception.Message;    }    return str;   }

第二種方式:

定時(shí)發(fā)郵件可以用Timer來(lái)設(shè)置時(shí)間,放在了Global.asaxApplication_Start里面

using System.Net.Mail; using System.Timers; protected void Application_Start(object sender, EventArgs e)   {    Timer t = new Timer(60000);//設(shè)計(jì)時(shí)間間隔,如果一個(gè)小時(shí)執(zhí)行一次就改為3600000 ,這里一分鐘調(diào)用一次    t.Elapsed += new ElapsedEventHandler(t_Elapsed);    t.AutoReset = true;    t.Enabled = true;   }   private void t_Elapsed(object sender, ElapsedEventArgs e)   {    MailMessage message = new MailMessage();    message.From = Messagefrom;    message.To.Add(MessageTo);    //收件人郵箱地址可以是多個(gè)以實(shí)現(xiàn)群發(fā)    message.Subject = MessageSubject;    message.Body = MessageBody;    message.IsBodyHtml = true;    //是否為html格式    message.Priority = MailPriority.High; //發(fā)送郵件的優(yōu)先等級(jí)    SmtpClient sc = new SmtpClient();    sc.Host = "smtp.sina.com";    //指定發(fā)送郵件的服務(wù)器地址或IP    sc.Port = 25;       //指定發(fā)送郵件端口    //sc.UseDefaultCredentials = true;    //sc.EnableSsl = true;    sc.Credentials = new System.Net.NetworkCredential(“**@**”, "密碼"); //指定登錄服務(wù)器的用戶名和密碼     sc.Send(message);  //發(fā)送郵件   }

到此全部代碼就寫完了。

創(chuàng)建一個(gè)控制臺(tái)程序,生成一個(gè)exe 采用windows的計(jì)劃任務(wù)程序指定每天的某個(gè)時(shí)間點(diǎn)發(fā)送思路就是這個(gè)思路比服務(wù)簡(jiǎn)單

以上采用了兩種方式分別實(shí)現(xiàn)了采用.NET技術(shù)實(shí)現(xiàn)郵件定時(shí)發(fā)送功能,需要的朋友可以參考下。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 政和县| 马鞍山市| 巧家县| 海盐县| 武平县| 铜鼓县| 莱阳市| 阳原县| 余姚市| 镇远县| 封丘县| 唐山市| 柳江县| 紫阳县| 宝山区| 牡丹江市| 伊吾县| 花莲市| 富顺县| 沅陵县| 建瓯市| 海宁市| 开平市| 武强县| 许昌市| 申扎县| 汕头市| 城固县| 梅河口市| 乌审旗| 牙克石市| 德清县| 安康市| 泌阳县| 玉山县| 五台县| 永修县| 甘孜| 大田县| 和静县| 克拉玛依市|