温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
  • 忘记密码?
登录注册×
获取短信验证码
其他方式登录
点击 登录注册 即表示同意 《亿速云用户服务条款》
  • 服务器
  • 数据库
  • 开发技术
  • 网络安全
  • 互联网科技
登 录 注册有礼
最新更新 网站标签 地图导航
产品
  • 首页 > 
  • 教程 > 
  • 开发技术 > 
  • 编程语言 > 
  • .NET定时发送邮件代码的案例分析

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

发布时间:2020-11-21 10:28:18 来源:亿速云 阅读:127 作者:小新 栏目: 编程语言

这篇文章主要介绍了.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<string> mailAddress = new List<string>();
   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<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;
   }

第二种方式:

定时发邮件可以用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定时发送邮件代码的案例分析内容对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,遇到问题就找亿速云,详细的解决方法等着你来学习!

向AI问一下细节
推荐阅读:
  1. .net发送邮件
  2. .NET后台定时服务框架的示例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

ne
  • 上一篇新闻:
    asp.net发送邮件的示例
  • 下一篇新闻:
    如何记录C# 条件编译

猜你喜欢

  • Debian中的backports存储库的作用是什么
  • CentOS中如何安装和配置Kubernetes容器编排平台
  • 如何在CentOS中使用journalctl查看系统日志
  • CentOS中如何设置用户限额
  • 如何在CentOS中安装和配置Prometheus监控系统
  • CentOS中如何进行系统备份和恢复
  • 如何在CentOS中安装和配置Tomcat应用服务器
  • CentOS中如何使用systemctl管理系统服务
  • 如何在CentOS中安装和配置MongoDB数据库
  • CentOS中如何优化系统性能
最新资讯
  • Cassandra中的数据一致性级别是如何影响读写操作的
  • 如何在Prolog中实现模式匹配
  • Prolog中的迭代器是如何实现的
  • Prolog中的元组是什么如何表示
  • 如何在Prolog中表示图形数据结构
  • Prolog中的约束编程是如何实现的
  • Prolog中如何处理递归的基本情况
  • Prolog中的割点如何影响程序执行
  • Prolog中的逆向脱却是什么概念
  • Prolog中的“;”和“”运算符分别表示什么
相关推荐
  • .net下使用Quartz.Net的案例分析
  • .net之Elasticsearch的案例分析
  • 如何实现定时发送邮件
  • Phan代码静态扫描的案例分析
  • node实现定时发送邮件的示例代码
  • 基于SpringBoot如何实现定时发送邮件
  • Spring Boot 发送邮件功能案例分析
  • Python代码注释规范代码的案例分析
  • vbs如何实现定时发送邮件
  • Hibernate使用案例代码分析

相关标签

pvck命令 locate命令 独立服务器 mysqlhotcopy命令 moc 图形化 venv service命令 rsync命令 块级重删 htmltestrunner 二进制安装 ll命令 家庭版 transform属性 closepath() pv命令 migration umbraco bdo标签
AI

聚圣源物流公司起名字大全免费不眠之夜小说起名小程序源码五行起名查五行缺什么陈姓起的名字翡翠店取名起名大全葛氏女孩小孩起名锴起名字上海池上便当战地3中文版剑灵补丁川航8633事件国学起名男宝怎样起一个水果店的名字物业公司名称起名大全无双庶子人间情缘两字起名开店可以随便起名吗刘嘉男孩起名起名学在五行中字典电梯公司起名大全集公司起名测试华吉起名大全代表健康平安的字唢呐大全英语书信格式你敢娶我敢嫁给家具起名字好听海棠依旧电视剧地狱客栈第一季全集淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化