$ mail-> Send()使用PHPMailer类发送多个电子邮件

时间:2017-01-20 07:31:16

标签: php email email-attachments

  

使用PHPMailer类。   我有以下代码。用于发送给客户和所有者的电子邮件,   只有发送信息才会更改客户端和所有者。   大段引用   当我提交电子邮件信息时,客户端获得双重电子邮件(获得2封电子邮件),所有者获得1封电   和客户从客户端获取电子邮件信息如何发送个人   给两者发邮件。   此代码是否包含任何错误?

/* for client email send*/   
    $emailAddr ='owneremail@gmail.com';
         $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;
    }

1 个答案:

答案 0 :(得分: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和答案。它将帮助您更好地理解问题。

希望我的回答有所帮助。