我有很多客户,每位客户都需要我定期发送邮件给他们,但是发送的时间间隔不一样,有的一个月发一次有的一星期发一次,请问这个问题如何解决?另外,有没有例子让我参考一下,谢谢!!!

解决方案 »

  1.   

    Global.asaxbool mailThreadStarted = false;protected virtual void Application_Start(object sender, EventArgs e)
    {
       Application.Lock();   if(!mailThreadStarted)
       {
    Thread th = new Thread(SendEmailWorker);
            th.IsBackground = true;
            th.Start();
            mailThreadStarted = true;
       }   Application.UnLock();
    }private void SendEmailWorker()
    {
      while(true)
      {
        ..sending email code
        Thread.Sleep(...);
      }
    }
      

  2.   

    数据表中增加两个字段,一个字段为发送周期,另外一个为下一次发送的时间。原理:
    1、第一次注册时先发送一次。
    2、发送完成之后,根据周期字段,将下次发送的时间写入。
    3、在Global.asax中,加入一个timer,写入每天一个时间段去检查数据表是否有邮件需要发送。
    4、如果检查到有需要今天发送的邮件,进行邮件发送,发送完毕之后,根据发送周期字段,将下次发送时间写入。
      

  3.   


    正解个鬼,他的问题又不是发邮件本身。再说了,发邮件必须要Jmail么?有现成的MailMessage不用偏要去用第三方?
      

  4.   

    另外可以写console application然后利用windows的计划任务排程.
    这个Insus.NET有用(是可以管理服务器的情况之下的方法)
    另外的方法,就是照上面有朋友提到的方法,利用System.Threading.Timer来实现!