• 学前教育
  • 小学学习
  • 初中学习
  • 高中学习
  • 语文学习
  • 数学学习
  • 英语学习
  • 作文范文
  • 文科资料
  • 理科资料
  • 文档大全
  • 当前位置: 雅意学习网 > 理科资料 > 正文

    邮件群发系统 用ASP.NET设计定时邮件群发系统

    时间:2018-12-24 03:34:11 来源:雅意学习网 本文已影响 雅意学习网手机站

      摘 要:定时邮件群发系统由邮件列表、邮件发送、定时触发送几部分组成,利用System.Net.Mail类实现邮件发送,利用Application_Start事件和System.Timers类实现定时发送。ASP.NET作为先进的WEB开发工具被广泛使用,强大的功能保证了功能实现的简单性、系统的稳定性。
      关键词:ASP.NET 邮件 邮件群发 邮件列表
      
      随着信息技术的发展,因特网在人们的日常工作和生活中发挥着越来越大的作用。电子邮件作为因特网的重要功能之一,并利用电子邮件的快速、廉价、便于存储、传递多媒体信息、便于多向交流、方便保密等独特优点,在个项工作中发挥重要作用,如在BBS、交易等服务网站得到了广泛应用。如果需要向多方用户发送相同类型的邮件时,人工每份逐一发送不但工作量很大,而且不能达到及时发送的效果。所以群发就非常必要,让每个用户都能及时得到最新的信息。
      
      一、邮件列表的作用和工作方式
      
      邮件列表就是网站或者机构为了及时通知信息给相关用户,将这些用户的电子邮件保存,并且在有信息需要发送的时候将信息分别发送给所有用户。表面上,邮件列表和发送电子邮件的时候使用的“附送”、“密送”差不多,基本没什么差别,其实,它们还是有差别的:邮件列表具有明确的发送目的,发送邮件列表就是为了发送特定信息给特定用户;邮件列表接受人不能取得其他接受人的资料,这一点是邮件列表和电子邮件附送的最大区别。发现在邮件的“附送”栏有很多其他用户的邮件地址,这就是通过“附送”方式将邮件发送给一系列用户;而通过邮件列表发送的邮件,用户感觉就是发送人单独发送给用户的,不能看见其他用户的信息。这样,我们就可以知道邮件列表的工作方式其实是将每个用户的电子邮件取出,然后逐个发送相同的信息。
      
      二、邮件列表的设计
      
      邮件列表的所有电子邮件地址必须保存在数据库表中或一个文件中,这样可以很方便地对邮件地址记录进行管理。假设存入表userE-mail中,表结构为标识号ID、邮件地址E-mail等字段。利用DataSet读取邮件地址E-mail。
      private static void EMailList()
      {
      DataSet ds = new DataSet();
      OleDbDataAdapter da = new OleDbDataAdapter(“select id,email from userEmail”,OleDbConnection);
      da.Fill(ds);
      }
      
      三、邮件发送
      
      一般来讲,做ASP的邮件发送系统都是借助第三方开发的组件,如Jmail等,当然你也可以用Windows的自带的对象CDONTS.NewMail对象来传送E-mail,这虽然是免费的,但却十分依赖操作平台,CDONTS.省略(微软最强的开发语言),利用System.Net.Mail空间,E-mail的发送已经成为WEB程序设计的基本对象,利用MailMessage的to、from、host等属性和send事件就能简单实现发送邮件功能。
      public Boolean SendMail(string cFrom,string cSmtpServer,string cUserName,string cPassword,string cTo,string cSubject,string cBody)
       {
      Msg.Sender = new MailAddress(cFrom);//发件地址
      Msg.To.Add(cTo);//目的地址
      Msg.Subject = cSubject;//标题
      Msg.Body = cBody;//内容
      Msg.IsBodyHtml = true;//内容发送是否以HTML格式发送,否则以文本格式发送
      SmtpClient smtp = new SmtpClient();
      smtp.Host = cSmtpServer;
      smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
      smtp.Credentials = new NetworkCredential(cUserName,cPassword);
      smtp.Send(Msg);
       }
      
      四、Smtp服务器
      
      Smtp服务器是邮件发送服务器,而现在一些免费邮件提供商是不再提供针对所有邮件提供Smtp服务,在发送邮件的时候,需要验证用户信息,因此,不能随便使用一个Smtp服务器,而必须使用完全免费的Smtp服务器,这样的服务器现在已经很少了。所以,如果有条件,最好我们自己设置计算机为Smtp服务器,怎样实现,我们可以下载EasyMail等软件。第二是邮件发送速度问题,如果Smtp服务器在本地计算机,发送速度很快,基本上不用担心;如果不是本地服务器,那么发送的时候最好不要一次太多,一是速度问题,二是一次发送太多邮件,Smtp服务器可能认为是垃圾邮件而拒绝服务。
      
      五、邮件定时群发
      
      在ASP.NET开发的系统里面,有时会有需要定时做一件操作的功能,例如发送通知邮件、清理信息等。有些采用了Windows服务的方式,所有的Windows服务都必须写入注册表的HKEY_LO-CAL_MACHINE \SYSTEM \CurrentControlSet\Services位置中。但作为一个Web系统需要Windows服务,并且需要修改注册表,假设需要更新系统还得又要更新服务,这样就没有发挥Web系统的优势。
      ASP.NET系统里能怎样做定时类的功能?利用Global.asax中的Application_Start事件和System.Timers类。Global.asax文件(也称作ASP.NET应用程序文件)是可选文件,包含用于响应ASP.NET引发的应用程序级别事件的代码。Global.asax文件驻留在基于ASP.NET的应用程序的根目录中。在运行时,分析Global.asax文件并将其编译到一个动态生成的.NET Framework类,该类是从HttpApplication基类派生的。Global.asax文件本身被配置为自动拒绝对它的任何直接URL请求,外部用户无法下载或查看在该文件中编写的代码。
      void Application_Start(object sender,EventArgse)事件在应用程序开始前调用,只要该WEB系统开始运行,该事件就先触发,定时触发的判断就可以加在里面。Timer组件是基于服务器的计时器,它使您能够指定在应用程序中引发Elapsed事件的周期性间隔,然后可以操控此事件以提供定期处理。
      void Application_Start(object sender,EventArgs e)
      {
      System.Timers.Timer t = new System.Timers.Timer(60000);//定义timer并设定其周期时间,1000为1秒
      t.Elapsed += new System.Timers.ElapsedEventHandler(OnTimedEvent);//定时调用处理事件
      t.Enabled = true;
      }
      private static void OnTimedEvent(object source,System.Timers.ElapsedEventArgs e)
      {
      System.DateTime dt = System.DateTime.Now;
      if (dt.Hour == 0 && dt.Minute >= 0 && dt.Minute

    推荐访问:邮件群发 定时 设计 系统

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章