1 crontab 设定每天都执行一个send.php文件.
2 send.php查询当前时间,
  如果当前时间大于2009-8-12,则退出.
  如果当前时间是周一,调用send_monday.php.
  继续调用send_normal.php
3 send_monday.php 通过查询数据库或者xml文件获取指定邮箱,调用phpmailer来发送邮件. 退出.
4 send_noraml.php 通过查询数据库或者xml文件获取指定邮箱,调用phpmailer来发送邮件. 退出.

解决方案 »

  1.   

    send_monday.php怎么得出是周一来?因为前台页面,用户输入提醒时间,选择每周一提醒,或每天来提醒
      

  2.   

    send.php查询当前时间,来处理一些业务逻辑.决定是否调用哪个php来执行.
    当然,用户设定的提示,你可以保存在任何可以被读取的地方.
      

  3.   

    本不想放出代码,其实我的思路已经很明确了.
    $currentTime = time();
    $cancelTime = strtotime("2009-8-12");
    if($currentTime > $cancelTime)
    {
      exit();
    }$arrDate = getdate($currentTime);
    if($arrDate['wday'] == 1)
    {
      include "send_monday.php";
    }
    include "send_normal.php";在send_monday或者send_normal里查询数据库,找出对应用户的email,并且发送邮件.
      

  4.   

    jakey9826 排常感谢!!
    我想再问一下,如果星期也是从数据库来查呢?即星期一,星期二,这可能也是用户输入
      

  5.   

    $arrDate
    这个是什么意思,呵呵,真不好意思?数组日期?怎么来的?
      

  6.   

    $arrDate是转换当前系统时间的数组
      

  7.   

    wday这个是变量?数据库中的字段?
      

  8.   

    getdate($currentTime);返回一个数组,wday是这个数字的一个索引.具体可以见手册.至于星期也是在数据库里保存.OK.
    你有send_monday, send_tues...等七个文件,
    在每个文件里各自搜索匹配条件数据库用户,发送邮件.其实这个是很灵活的,你自己取都可以,关键是思路要清晰.