PHPMailer模拟队列发送邮件

这里写图片描述

<?php
//队列
//phpcli模式,当使用php.exe的时候,会创建进程,当程序结束后,进程结束。
exec("E:\wamp\bin\php\php5.5.12\php.exe cli_test.php");
  ?>
<?php
$rootPath=dirname(__FILE__);
require $rootPath.'/PHPMailer/PHPMailerAutoload.php';
 function sendMail($host,$fromEmail,$fromPwd,$fromName,$toEmail, $toName,$subject,$content){
    $mail = new PHPMailer;
$mail->isSMTP();                                 
$mail->Host = $host; 
$mail->SMTPAuth = true;                       
$mail->Username = $fromEmail;               
$mail->CharSet="UTF-8";
$mail->Password = $fromPwd;                      
$mail->From = $fromEmail;
$mail->FromName = $fromName;
$mail->addAddress($toEmail, $toName);   
$mail->Subject = $subject;
$mail->Body = $content;
return $mail->send();
}

$link = mysqli_connect("localhost","root","","test");

mysqli_query($link,"set names utf8");
while(true){
    $sql="SELECT *FROM task_list WHERE status = 0 ORDER BY task_id ASC LIMIT 5 ";
    $res = mysqli_query($link,$sql);
    $mailList=array();
    while($row = mysqli_fetch_assoc($res)){
        $mailList[]=$row;
    }


    if(empty($mailList)){
        break;
    }else{
        foreach($mailList as $k=>$v){			if(sendMail("smtp.aliyun.com","shangjiahe@aliyun.com","Shang1994","aliyun",$v['user_email'],'sina',"woaixuexi","xixixixi")) {
                    mysqli_query($link,"UPDATE task_list SET status = 1 WHERE task_id=".$v['task_id']);
                }
                sleep(3);
        }
    }
}   
echo "done";
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值