我正在使用PHP Mailer功能发送邮件。为了向多个收件人发送邮件,我按照以下方式使用for循环: -
for($i=0;$i<count($com_string_array);$i++)
{
$soc_memb_comm_info = explode(",",$com_string_array[$i]);
$mailing->send_mail_with_attachment($soc_memb_comm_info[4],
$soc_memb_comm_info[3],$upload_path,$file_name,$message);
}
public function
send_mail_with_attachment($to,$full_name,$file_path,$file_name,$message)
{
//Other configuration parameter of PHP Mailer.
$this->AddAddress($to);
$this->Subject = "Welcome ";
$this->Body = $message;
$this->AltBody = $email_msg;
$this->AddAttachment($file_path,$file_name);
if(!$this->Send())
{
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $this->ErrorInfo;
exit;
}
我的问题是,邮件的乘数倍数是相同的收件人。例如。如果我向三个人发送邮件,那么第一个人就会收到三次邮件。 1.直接对第一人称。 2.直接向第一人称,第二人称。 3.直接面向第一人,第二人和第三人。
Kindy建议为什么会出现这样的问题。
答案 0 :(得分:3)
每次使用此功能发送时,您使用的邮件程序都不会重置。因此,当您第二次调用send函数时,第一个收件人仍然存在,以及第一个附件。你没有提到附件,但我想在第二封邮件中,附件会有两次。
您必须使用PHPMailer的新实例,或者在发送邮件之前清除所有收件人和附件。
$this->clearAllRecipients();
$this->clearAttachments();