我正在使用PHPMailer并使用AddBCC发送到我的大多数地址(仅使用AddAddress中需要的1个)。它似乎工作正常(没有错误),但我发现它没有保存(或发送)我使用$ mail-> AddBCC处理的所有地址。它会跳过其中的一些,但保留其他人。因此,当我执行print_r($ mail-> getBccAddresses())时,我可以看到它只有一些电子邮件地址。我正在以小组的形式处理我的地址列表,所以我可以更好地控制事情,所以我不认为会有这样的问题。我从我的程序中包含了适用的代码:
<?php session_start();
require '../PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$emailist_cnt = 3;
for ($i=1; $i<= $emailist_cnt; $i++) {
//loop to gather email addresses into array $emailistAry[][]
}
// First, set up email message and required parameters.
$toname = "Grp-members";// Unused mailbox name
$fromname = "Webmaster";
$replyname ="Grpwebmaster";
$fromaddr = $fromname."@mydomain.org";
$toaddr = $toname."@mydomain.org";
$rplyaddr = $replyname."@gmail".".com";
$subject = "-- Website Update--";
$note1 = "New content has been added to the website";
$note2 = "Go check it out, if you want to stay up-to-date:";
$message = "Greetings HLCA Member! ".$note1." ".$note2;
// Set mail environment variables
$mail->isSMTP();
$mail->Host = 'smtp.hiddenlakeonline.org';
$mail->SMTPAuth = true;
$mail->Username = $fromname."@".$domain.".org";
$mail->Password = $webpass;
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
// Set mail details that remain constant for every recipient
$mail->SetFrom($fromaddr);
$mail->AddAddress($toaddr);
$mail->AddReplyTo($rplyaddr);
$mail->Subject = $subject;
$mail->Body = $message;
$max_emails = 25; // max num emails per list
for ($i=1; $i <= $emailist_cnt; $i+=1) {
for ($j=1; $j <= $max_emails; $j+=1) {
// Addresses in current list will be added to BCC param.
if ($emailistAry[$i][$j] != '') {
$mail->AddBCC($emailistAry[$i][$j]); // add email to BCC }
} // for j loop
echo "would send to email list here. ";
print_r($mail->getBccAddresses());
// Clear cumulative recipient list for next loop
$mail->clearBCCs();
} // for i loop
?>
如您所见,我只是在做一个循环来添加BCC条目。但是,当我打印出getBCCaddresses数组时,每个列表中始终至少缺少一封电子邮件。 PHP Mailer中是否有错误?或者我做错了什么?
我在另一个网站(sourceforge.net?)上看过类似的帖子(没有任何代码),但问题从来没有得到解答。否则,没有任何类似的东西可以提供帮助。希望有人在这里知道一些事情。
以下是我使用echo输出的一些结果:
i,j,添加此电子邮件:1,1,ImxEarth @ gmail.com
我,j,添加此电子邮件:1,2,heffxdog @ me.com
我,j,添加此电子邮件:1,3,imxearth @ gmail.com
i,j,添加此电子邮件:1,4,Aaronx72 @ yahoo.com
print: Array ( [0] => Array ( [0] => ImForEarth@gmail.com [1] => ) [1] => Array ( [0] => heffdog@me.com [1] => ) [2] => Array ( [0] => AaronTW72@yahoo.com [1] => ) )
phpMailer可能会阻止BCC阵列中的重复地址吗?
答案 0 :(得分:0)
我想我找到了答案!似乎AddBCC只会向其阵列添加唯一的电子邮件地址。因此,如果BCCaddresses数组中已存在电子邮件地址,则Mail-&gt; AddBCC(&#39; email&#39;)语句将不会再次添加。这在测试时变得明显,因为我们经常需要使用重复项来创建大量的电子邮件。好吧,您可以处理重复项,但它们不会被添加到BCC参数中,并且不会被多次邮寄。感谢所有人的回应!