2017-02-13 43 views
0

我有一個場景,我必須在PHPMailer電子郵件的抄送(CC)字段中添加多個地址。如果電子郵件無效,則當前郵件不會發送。如果郵件不存在,PHPMailer通過addCC函數發送郵件,然後跳過該電子郵件地址

我希望如果電子郵件地址無效,它將跳過添加該電子郵件地址$mail->addCC($cc);,並簡單地發送給其他收件人。

在PHPMailer中有沒有其他方法可以實現這一點?如果是這樣,請將它推薦給我。

+0

你是說如果兩封電子郵件是以cc爲單位,並且第一封電子郵件不存在,第二封郵件不存在,那麼郵件也不會發送第二封電子郵件 –

+0

是的,它給了這個 - SMTP錯誤:以下收件人失敗: – d3vdpro

+0

我做它像這樣 - > AddAddress(),AddCC()然後發送 – d3vdpro

回答

0

您可以發送電子郵件到CC-收件人,以這樣的主要對象:

/* Prepare PHPMailer object */ 
... 

/* Send email to main recipient */ 
... 

/* Form cc array */ 

$ccs= [ 
     "FirstCC" => "[email protected]", 
     "SecondCC" => "[email protected]" 
     ]; 

/* Send email to each cc as to main */ 

foreach ($ccs as $name => $address) 
{ 
    $mail->clearAddresses(); 
    $mail->AddAddress($address, $name); 
    $mail->Send(); 
} 

這樣將提供保證,所有有效的收件人收到電子郵件

+0

我想要多個cc的 – d3vdpro

0

PHPMailer的自動驗證你給它的所有地址。您可以判斷地址實際上是否會被接受的唯一方法是嘗試發送給它,如果失敗,請不要嘗試下次發送地址。如果你想發送給多個CCS(其中所有收件人可以看到郵件中所有其他地址),這樣做:

... 
$mail->addAddress('[email protected]'); 
foreach ($ccs as $cc) { 
    $mail->addCC($cc); 
} 
$mail->send(); 

addCC會自動跳過實際無效的地址(返回false任何是無效的),但目前無法確定地址是否可以接受交付 - 您必須嘗試交付才能找到答案。

+0

整個郵件發送失敗的電子郵件。經過測試,如果addcc中有一個地址不存在,它不能發送整個郵件。 – d3vdpro

+0

Can你設置SMTPDebug = 2並添加SMTP轉錄到你的問題如果你在PHPMailer類的'smtpSend()'方法中查看,你會發現它不會放棄如果單個收件人失敗。使用PHPMailer的默認'mail()'傳輸不具備這種能力? – Synchro

相關問題