PHP邮件程序多个地址

Jor*_*rge 80 php phpmailer

可能重复:
PHPMailer AddAddress()

这是我的代码.

require('class.phpmailer.php');
$mail = new PHPMailer();

$email = 'email1@test.com, email2@test.com, email3@test.com';

    $sendmail = "$email";

    $mail->AddAddress($sendmail,"Subject");
    $mail->Subject = "Subject"; 
    $mail->Body    = $content;      

    if(!$mail->Send()) { # sending mail failed
        $msg="Unknown Error has Occured. Please try again Later.";
    }
    else {
        $msg="Your Message has been sent. We'll keep in touch with you soon.";
    }   
}

问题
如果$ email值只有1.它会发送.但是多个不发送.我该怎么做呢 我知道在邮件功能中你必须用逗号分隔多个电子邮件.但不能在phpmailer中工作.

Ala*_*zco 237

您需要AddAddress为每个收件人调用一次该方法.像这样:

$mail->AddAddress('person1@domain.com', 'Person One');
$mail->AddAddress('person2@domain.com', 'Person Two');
// ..
Run Code Online (Sandbox Code Playgroud)

更好的是,将它们添加为Carbon Copy收件人.

$mail->AddCC('person1@domain.com', 'Person One');
$mail->AddCC('person2@domain.com', 'Person Two');
// ..
Run Code Online (Sandbox Code Playgroud)

为了简化操作,您应该遍历一个数组来执行此操作.

$recipients = array(
   'person1@domain.com' => 'Person One',
   'person2@domain.com' => 'Person Two',
   // ..
);
foreach($recipients as $email => $name)
{
   $mail->AddCC($email, $name);
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意:使用`AddCC()`代替`AddAddress()`导致PHPMailer错误`电子邮件错误:您必须提供至少一个收件人电子邮件地址`.PHPMailer似乎已通过将第一个CC地址复制到To字段而从中恢复.这最终得到的电子邮件都通过电子邮件发送和抄送到同一地址. (17认同)
  • 我只想补充一点,使用AddCC会通过电子邮件发送给所有收件人,但是当他们打开电子邮件时,他们都会在标题中看到彼此的电子邮件.请改用AddBCC (6认同)
  • 这个问题很糟糕,但这一次回答了我所有的三个问题 - 谢谢 (2认同)