发单封邮件没有问题,但是当我群发邮件时,用while循环从数据库读取邮件地址一个一个发,当其中某一封邮件发不出去的是,程序就卡在那里了,我想问问有没有办法就是如果这封邮件发送有问题就跳过去,继续发送下一封

解决方案 »

  1.   

    $mail = new PHPMailer();
    .
    .
    .
    .
    if(!$mail->Send())
    {
      echo "邮件发送失败. <p>";
      echo "错误原因: " . $mail->ErrorInfo;
      //跳转到本页 继续发邮件。
    }else{ 
      echo "邮件发送成功";
    }
      

  2.   

    另外:
    同一ip地址,同一帐号 连续的发邮件 就会触发服务器对该帐号的注意,有可能会短暂的停止该帐号的邮件smtp的服务,过几分钟再恢复权限。
      

  3.   

        你说的对,我确实在发过几十封之后该账号会停止发送,过一段时间就又恢复了,我曾试过中间加上sleep(60);但是奇怪的是不起作用,邮件还是一下子就都发出去了,不知道为什么sleep不执行啊
        再就是你说的页面跳转,在这里不能用header(location:"本页面"),还有跳转到本页后程序会继续执行,会接着从出问题的下一封邮件发送?
      

  4.   

    你用sleep(60)服务器没挂掉吗?
      

  5.   

    居然有短暂停掉服务的功能 
    学习了php如果支持多线程就OK了
      

  6.   

    sleep(60)服务器有时候就挂掉了,有时候就没挂,这是为什么啊
      

  7.   

    我的解决方案是
    一 :时间延迟不用php,而用settimeout 在浏览器端
    二 :申请n多个邮件帐号,mt_rand()每发一次邮件就随机一个帐号。
      

  8.   

    在header前面有输出的情况下,header(location)就不起作用了。
    改用echo "<script>window.location.href=xxxxxxx?mail=$lastmail </script>";lastmail就是上一次 最后一条email。本页通过判断$_GET['$lastmail']是否存在,如果不存在就从第一条地址开始发邮件
    如果存在就从lastmail以后的地址开始发邮件。
      

  9.   

    能不能告诉我怎么用phpailer发邮件  我现在都糊涂了