2017-01-20 43 views
1

使用PHPMailer類。 我有以下代碼。對於電子郵件發送給客戶和所有者相同的電子郵件, 只有發送從信息是更改爲客戶和所有者。 Blockquote 當我提交電子郵件信息,客戶端得到雙重電子郵件(獲得2電子郵件)和所有者獲得1電子郵件。 和客戶端從客戶端獲取電子郵件信息如何發送個人電子郵件到 。 這段代碼是否包含任何錯誤?

/* for client email send*/ 
    $emailAddr ='[email protected]'; 
     $body    = $client_message; 
      $body    = eregi_replace("[\]",'',$body);  
      $mail->SetFrom(c, $name);  
      $mail->AddAddress($_POST['email'], $_POST['name']);  
      $mail->Subject = "subject1";  
      $mail->MsgHTML($body); 
      $mail->AddAttachment("images/download.pdf"); 



if(!$mail->Send()) { 
     echo "Mailer Error: " . $mail->ErrorInfo; 
    } 
    /*For owner email*/  
    $client_message1 = $client_message; 
    $body    = $client_message1; 
    $body    = eregi_replace("[\]",'',$body); 
    $mail->SetFrom($_POST['email'], $_POST['name']);  
    $mail->AddAddress($emailAddr, $name);  
    $mail->Subject = "subject1"; 
    $mail->MsgHTML($body); 

    if(!$mail->Send()) { 
    echo "Mailer Error: " . $mail->ErrorInfo; 
    } 
+0

swiftmailer? eregi_replace()已棄用。你不檢查你的後期變量。 – Bernhard

+0

我已刪除「eregi_replace()」,但沒有任何更改。 –

回答

3

注:既然你沒有提到它在你的問題,我假設你正在使用的PHPMailer類。用這些信息更新問題是個好主意。

AddAddress()功能,顧名思義,增加新地址到收件人列表,而在同一時間保持先前添加的地址。

解決方案:

你有你在該行$mail->AddAddress($emailAddr, $name);添加收件人地址爲第二電子郵件之前使用clearAllRecipients()功能。你在這部分最終代碼應該是這樣的:

$mail->clearAllRecipients(); $mail->AddAddress($emailAddr, $name);

編號:https://phpmailer.github.io/PHPMailer/classes/PHPMailer.html#method_clearAllRecipients

有沒有提到的許多其他類似的有用的功能。請檢查。另外,看看這個question和答案。它會幫助你更多地理解問題。

希望我的回答有幫助。

+0

謝謝。這個對我有用 –