我正在使用PHPMailer並使用AddBCC發送到我的大部分地址(僅在AddAddress中使用1)。它似乎工作正常(沒有錯誤),但我發現它沒有保存(或發送到)我用$ mail-> AddBCC處理的所有地址。它跳過其中一些,但保留其他。所以,當我做一個print_r($ mail-> getBccAddresses())時,我可以看到它只有一些電子郵件地址。我正在處理我的小組地址列表,所以我可以更好地控制事情,所以我不認爲會有這樣的問題。我包括我的程序中的適用代碼:phpmailer addBCC不存儲地址
<?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 I,J,添加此電子郵件:1,2,heffxdog @我。 COM I,J,添加此電子郵件:1,3,imxearth @ gmail.com I,J,添加此電子郵件:1,4,Aaronx72 @ yahoo.com
print: Array ([0] => Array ([0] => [email protected] [1] =>) [1] => Array ([0] => [email protected] [1] =>) [2] => Array ([0] => [email protected] [1] =>))
難道PHPMailer的防止BCC數組中的重複地址?
下面是我使用一些回聲輸出得到的一些輸出:i,j,添加此電子郵件:2,1,hlcawebmaster @ gmail.com 我,j,添加此電子郵件:2,2,psy.jennifer @ gmail。 com 我,j,添加此電子郵件:2,3,heffdog @ me.com 我,j,添加此電子郵件:2,4,hlcawebmaster @ gmail.com 將發送電子郵件列表在這裏。 BCC list = psy.jennifer @ gmail.com,heffdog @ me.com ,, bcc print:Array([0] => Array([0] => [email protected] [1] =>)[1] => Array([0] => [email protected] [1] =>)[2] => Array([0] => [email protected] [1] =>) – user2735375
您不是從'addBCCAddress'檢查返回值,所以你不會看到它拒絕無效地址。 – Synchro
是的,PHPMailer會跳過重複的地址。 – Synchro