如何实现每月十五号发送邮件!

解决方案 »

  1.   

    /
    自己研究研究吧
    //   <summary>   
      ///   Class1   的摘要说明。   
      ///   </summary>   
      class   Class1   
      {   
      ///   <summary>   
      ///   应用程序的主入口点。   
      ///   </summary>   
      [STAThread]   
      static   void   Main(string[]   args)   
      {   
      TestTimer   timer   =   new   TestTimer();   
        
      //   隔5秒运行第一次   
      TimeSpan   start   =   TimeSpan.FromSeconds(5);   
      // 此后每10秒运行一次   
      TimeSpan   interval   =   TimeSpan.FromSeconds(10);   
        
      // /// 每个星期五5时整运行   
      //   
      // //   当前的时间   
      // System.DateTime   dt   =   DateTime.Now;   
      // // 第一次要运行的时间,初始化为当天5时   
      // System.DateTime   firstDT   =   new   DateTime(dt.Year,dt.Month,dt.Day,5,0,0);   
      // // 指定每周五定时运行   
      // System.DayOfWeek   dow   =   DayOfWeek.Friday;   
      // // 一周间隔时间   
      // TimeSpan   oneWeek   =   TimeSpan.FromDays(7);   
      //   
      // while(true)   
      // {   
      // //   判断每一次要运行的时间是不是星期五   
      // if   (firstDT.DayOfWeek   ==   dow)   
      // {   
      // //   如果当前时间小于每一天运行的时间,则第一次运行的时间有效,退出   
      // if   (dt   <   firstDT)   
      // {   
      // break;   
      // }   
      // }   
      //   
      // //   每一次运行的日期加一,直到合适为止   
      // firstDT   =   firstDT.AddDays(1);   
      // }   
      //   
      // // 第一次运行的时间间隔(每一次要运行的时间减当前时间)   
      // start   =   firstDT.Subtract(dt);   
      // // 每隔一周运行一次   
      // interval   =   oneWeek;   
        
      //   启动定时器   
      timer.Run(start,interval);   
        
      Console.Read();   
        
      timer.Stop();   
      }   
      }   
        
      ///   <summary>   
      ///   TestTimer   的摘要说明。   
      ///   </summary>   
      public   class   TestTimer   
      {   
      private   Timer   timer;   
        
      public   TestTimer()   
      {   
      }   
        
      TimeSpan   interval;   
        
      bool   isFirst   =   true;   
        
      ///   <summary>   
      ///   运行定时器   
      ///   </summary>   
      ///   <param   name="firstStartTime">第一次运行时间间隔</param>   
      ///   <param   name="interval">运行时间间隔</param>   
      public   void   Run(TimeSpan   firstStartTime,   TimeSpan   interval)   
      {   
      Console.WriteLine("开始时间:{0}",DateTime.Now.ToString());   
      this.interval   =   interval;   
      timer   =   new   Timer(firstStartTime.TotalMilliseconds);   
      timer.Elapsed   +=   new   ElapsedEventHandler(timer_Elapsed);   
      timer.AutoReset   =   true;   
      timer.Start();   
      }   
        
      ///   <summary>   
      ///   停止定时器   
      ///   </summary>   
      public   void   Stop()   
      {   
      if   (timer   !=   null)   
      {   
      timer.Stop();   
      timer.Close();   
      timer.Dispose();   
      timer   =   null;   
      }   
      }   
        
      private   void   timer_Elapsed(object   sender,ElapsedEventArgs   e)   
      {   
      if   (isFirst)   
      {   
      isFirst   =   false;   
      timer.AutoReset   =   true;   
      timer.Interval   =   interval.TotalMilliseconds;   
      timer.Start();   
      }   
        
      Work();   
      }   
        
      ///   <summary>   
      ///   工作   
      ///   </summary>   
      public   virtual   void   Work()   
      {   
      Console.WriteLine("工作时间:{0}",DateTime.Now.ToString());   
      // ...   SEND   EMAIL   CODE   HERE   
        
      }   
      }
      

  2.   

    有数据库可以使用SqlServer的作业
      

  3.   

    每月十五号执行一次 就一次还用个线程去监停 浪费不?
    写个aspx页(包含你发EMAIL 的逻辑)  用WINDOWS计划任务 去触发访问下这个aspx页 算了