PHP邮件发送重复消息

PHP邮件发送重复消息,php,email,phpmailer,Php,Email,Phpmailer,我正在尝试向存储在mysql数据库中的一群人发送消息,这些人的值为name和email。现在我正试图发送一封写着“hello$name”的电子邮件。出于某种原因,每个人都会收到这封电子邮件,但他们会收到所有三封电子邮件,每封都会说“hello(不同的名字)” 以下是相关代码: $result = mysql_query("SELECT `name`, `email` FROM `emails`"); while ($rows = mysql_fetch_array($result))

我正在尝试向存储在mysql数据库中的一群人发送消息,这些人的值为name和email。现在我正试图发送一封写着“hello$name”的电子邮件。出于某种原因,每个人都会收到这封电子邮件,但他们会收到所有三封电子邮件,每封都会说“hello(不同的名字)”

以下是相关代码:

$result = mysql_query("SELECT `name`, `email` FROM `emails`");

    while ($rows = mysql_fetch_array($result))
    {   
        $name = $rows["name"];
        $email = $rows["email"];

        $mail->AddAddress($email, $name);

        $mail->Subject = "Your Daily Update";

        $mail->Body = "Hello $name, ";

        if(!$mail->Send()) 
        {
        echo 'Mailer error: ' . $mail->ErrorInfo;
        } 
    }

每次通过循环时,都需要将$mail对象重置为新实例。否则,您将一次又一次地向同一邮件添加地址。

每次通过循环,您都需要将$mail对象重置为新实例。否则,您将一次又一次地向同一邮件添加地址。

请尝试以下操作:

$result = mysql_query("SELECT `name`, `email` FROM `emails`");

    while ($rows = mysql_fetch_array($result))
    {   
        $name = $rows["name"];
        $email = $rows["email"];
        $mail->ClearAddresses();
        $mail->AddAddress($email, $name);

        $mail->Subject = "Your Daily Update";

        $mail->Body = "Hello $name, ";

        if(!$mail->Send()) 
        {
        echo 'Mailer error: ' . $mail->ErrorInfo;
        } 
    }
我添加了
$mail->ClearAddresses()将清除以前添加的所有电子邮件。

尝试以下操作:

$result = mysql_query("SELECT `name`, `email` FROM `emails`");

    while ($rows = mysql_fetch_array($result))
    {   
        $name = $rows["name"];
        $email = $rows["email"];
        $mail->ClearAddresses();
        $mail->AddAddress($email, $name);

        $mail->Subject = "Your Daily Update";

        $mail->Body = "Hello $name, ";

        if(!$mail->Send()) 
        {
        echo 'Mailer error: ' . $mail->ErrorInfo;
        } 
    }

我添加了
$mail->ClearAddresses()
将清除以前添加的所有电子邮件。

选择不同的电子邮件,名称可能不会有什么影响。
您尚未解释更改的内容或更改的帮助方式。
ClearAddresses()
函数调用正在执行的操作就很明显了here@Charles我认为这也是显而易见的。不管怎样,我已经更新了。@Sean,谢谢。不,一点也不清楚。您更改了一行代码,只需复制并粘贴原始代码。这不是一个好答案。事实上,您可以删除所有这些代码,您可能会得到一个更好的答案。选择不同的电子邮件、名称可能不会有什么坏处。您还没有解释您更改了什么或您的更改有什么帮助。
ClearAddresses()
函数调用正在执行的操作here@Charles我认为这也是显而易见的。不管怎样,我已经更新了。@Sean,谢谢。不,一点也不清楚。您更改了一行代码,只需复制并粘贴原始代码。这不是一个好答案。事实上,你可以删除所有的代码,你可能会得到一个更好的答案。嘿,你成功地让所有的东西都工作了吗?如果其中一个答案对你有帮助,你应该接受一个答案。嘿,你把所有的事情都做好了吗?如果其中一个答案对你有帮助,你应该接受一个答案。