Page

[php]使用phpmailer循环分开发送邮件的小技巧

615Anson17-07-24


我们知道,使用phpmailer的addAddress循环添加收件人的时候,发送出去的邮件每个收件人都会看到所有的收件人,这样会暴露了客户的信息,所有我们要分开发送。分开发送其实就是addAddress添加一个邮箱之后就send发送,然后clearAddress清空之前的邮箱队列,再addAddress添加send发送,这样循环既可以达到分开发送的效果。
//一次发送实例:$emailList待发送邮件列表

if (is_array($emailList)) {
    foreach ($emailList as $value) {
        $mailer->AddAddress($value);  //添加邮箱
    }
}else{
    $mailer->AddAddress($emailList); //添加邮箱
}

if ($mailer->send() === true){     //一次发送,不同于分开发送
    return true;
}else{
    return $mailer->Errorinfo();
}



//------------------------------------------------
//分开发送实例:$emailList待发送邮件列表



$num = 0;  //发送成功邮件总数

if (is_array($emailList)) {
    foreach ($emailList as $value) {
        $mailer->AddAddress($value);        //添加邮箱
        if ($mailer->Send() === true) {
              $num++;  
        }
        $mailer->clearAddresses();           //清空邮箱队列
        
    }
}else{
    $mailer->AddAddress($emailList);        //添加邮箱
    if ($mailer->Send() === true) {
          $num++;   
    }
}



相关API:

addAddress()

addAddress(string  $address, string  $name = '') : boolean

Add a "To" address.

Parameters

string$address

The email address to send to

string$name

Returns

boolean —

true on success, false if address already used or invalid in some way



clearAddresses()

clearAddresses() : void

Clear all To recipients.



API手册

http://phpmailer.github.io/PHPMailer/classes/PHPMailer.html



来自ansion博客 

http://www.tp0.top

2017-07-24 11:28:21