两种.NET定时发送邮件代码实例

经常发邮件的朋友都知道,邮箱有个特殊功能,可以设定邮件发送时间,定时发送,这个功能是怎么实现的呢?接下来,小编给大家分享.net实现定时发送邮件的代码,有需要的朋友可以参考下

有时候我们或许会遇到想在某一个时刻给别人发送一封邮件,就像是在生日的时候,但是我们又怕到时候忘记了,这时就应该

使用发送定时邮件的功能,但是这个定时发送邮件功能是怎么实现的呢?下面用两种方式实现.net定时发送邮件代码,具体请看下面内容。

实现思路、需求添加一个全局应用程序类Global.asax

代码会在访问网站时运行

Global.asax代码:

void Application_Start(object sender, EventArgs e)  {   // 在应用程序启动时运行的代码   System.Timers.Timer timer = new System.Timers.Timer();//设计时间间隔,如果一个小时执行一次就改为   timer.Elapsed += new System.Timers.ElapsedEventHandler(Send);   timer.AutoReset = true;   timer.Enabled = true;  }   void Application_End(object sender, EventArgs e)  {   // 在应用程序关闭时运行的代码   System.Threading.Thread.Sleep();   string strUrl = "服务器地址";   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();//得到回写的字节流   _HttpWebResponse.Close();  }   void Application_Error(object sender, EventArgs e)  {   // 在出现未处理的错误时运行的代码   }   void Session_Start(object sender, EventArgs e)  {   // 在新会话启动时运行的代码   }   void Session_End(object sender, EventArgs e)  {   // 在会话结束时运行的代码。    // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为   // InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer   // 或 SQLServer,则不引发该事件。   }   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 mailAddress = new List();   string mailSubjct = "邮件主题";    string mailBody = "邮件内容:";   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 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 

第二种方式:

定时发邮件可以用Timer来设置时间,放在了Global.asaxApplication_Start里面

using System.Net.Mail; using System.Timers; protected void Application_Start(object sender, EventArgs e)   {    Timer t = new Timer(60000);//设计时间间隔,如果一个小时执行一次就改为3600000 ,这里一分钟调用一次    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);    //收件人邮箱地址可以是多个以实现群发    message.Subject = MessageSubject;    message.Body = MessageBody;    message.IsBodyHtml = true;    //是否为html格式    message.Priority = MailPriority.High; //发送邮件的优先等级    SmtpClient sc = new SmtpClient();    sc.Host = "smtp.sina.com";    //指定发送邮件的服务器地址或IP    sc.Port = 25;       //指定发送邮件端口    //sc.UseDefaultCredentials = true;    //sc.EnableSsl = true;    sc.Credentials = new System.Net.NetworkCredential(“**@**”, "密码"); //指定登录服务器的用户名和密码     sc.Send(message);  //发送邮件   }

登录后复制

到此全部代码就写完了。

创建一个控制台程序,生成一个exe 采用windows的计划任务程序指定每天的某个时间点发送思路就是这个思路比服务简单

两种.NET定时发送邮件代码实例

以上就是两种.NET定时发送邮件代码实例的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2495166.html

(0)
上一篇 2025年3月5日 02:10:32
下一篇 2025年2月18日 02:25:57

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • .net实现后台登录验证

    这篇文章主要为大家详细介绍了.net后台页面统一验证是否登录的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了.net后台页面统一验证是否登录的具体代码,供大家参考,具体内容如下 首先新写一个PageBase类 …

    编程技术 2025年3月5日
    200
  • .NET用repeater实现分页效果的代码详解

    repeater控件是一个数据绑定容器控件,它能够生成各个项的列表,并可以使用模板定义网页上各个项的布局。本文对此进行详细介绍,下面跟着小编一起来看下吧 Repeater控件是一个数据绑定容器控件,它能够生成各个项的列表,并可以使用模板定义…

    编程技术 2025年3月5日
    200
  • .NET安装framework出现报错的处理教程

    这篇文章主要为大家详细介绍了win8/8.1系统安装.net framework 3.5出现0x800f0906代码错误的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 有效解决win8/8.1系统安装.net framewor…

    2025年3月5日
    200
  • ASP.NET C#中Application的用法教程

    这篇文章主要给大家介绍了关于asp.net c#中application的用法,在介绍application的用法之前,先给大家介绍了session的用法供大家参考学习,文中介绍的非常详细,需要的朋友们下面跟着小编一起来学习学习吧。 App…

    编程技术 2025年3月5日
    200
  • 介绍Asp.net使用Session的方法

    session 是保存用户和 web 应用的会话状态的一种方法,asp.net core 提供了一个用于管理会话状态的中间件,本篇文章主要介绍了asp.net core中使用session ,有兴趣的可以了解一下、 前言 2017年就这么悄…

    编程技术 2025年3月5日
    200
  • 分享N种.NET获取当前路径的的实例

    本文汇总了.net(包括asp.net/winform等)获取当前路径的各种方法,具有一定的参考价值,下面跟着小编一起来看下吧 //获取当前进程的完整路径,包含文件名(进程名)。    string str = this.GetType()…

    编程技术 2025年3月5日
    200
  • .NET中创建WebService服务的实例分析(图文)

    这篇文章主要为大家详细介绍了.net c# 创建webservice服务简单实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 Web service是一个基于可编程的web的应用程序,用于开发分布式的互操作的应用程序,也是一种web服…

    2025年3月5日 编程技术
    200
  • 在.net core 下如何进行http请求?

    本篇文章主要介绍了详解c# .net core 下的网络请求,大致介绍下在.net core 下如何进行http请求,主要仍然是get和post方法,有兴趣的可以了解下 本文章是在VS2017的环境下,.net core 1.1版本以上。 …

    编程技术 2025年3月5日
    200
  • .net core 根据数据库生成实体类

        微软最近几年在跨平台上不断发力,很多.net程序员也摩拳擦掌,对微软寄以厚望。就在最近,微软还推出了asp .net core2.0预览版。    通过对.net core的简单尝试,我发现以往我们开发MVC项目时,是通过新建一个.…

    2025年3月5日
    200
  • asp .net 面试题及答案分享

    1,ref 和out 的区别 2,有三个a 标签 没有id,没有name,没有class 如何选中第二个 a 标签,用jquert  选择 <a href ="#这是第一个" $(function){$(“a:eq…

    2025年3月5日 编程技术
    200

发表回复

登录后才能评论