使用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;
}
答案 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和答案。它将帮助您更好地理解问题。
希望我的回答有所帮助。