';至';使用PHPmailer时添加了两次地址

';至';使用PHPmailer时添加了两次地址,php,email,phpmailer,Php,Email,Phpmailer,我正在使用PHPmailer发送邮件。但是,邮件将被发送给每个用户两次。下面是一封测试邮件的屏幕截图。 以下是我的代码: <?php ##REQUIRED FUNCTION function send_mail_to($receiver, $msg) { $subject="[ TNP Update ] - Do you like the new look ?"; #Grab the PHPmailer class require_once('./lib/php

我正在使用PHPmailer发送邮件。但是,邮件将被发送给每个用户两次。下面是一封测试邮件的屏幕截图。

以下是我的代码:

<?php

##REQUIRED FUNCTION
function send_mail_to($receiver, $msg)
{
    $subject="[ TNP Update ] - Do you like the new look ?";
    #Grab the PHPmailer class
    require_once('./lib/phpmailer/phpmailer.inc.php');

    #Create object
    $mailer = new PHPmailer(); //Instantiate class
    $mailer->From="tnp@aakashbhowmick.in";
    $mailer->FromName="TNP Mailer";
    $mailer->IsHTML(true);
    $mailer->Subject = $subject;
    $mailer->Body = $msg;
    $mailer->AddAddress($receiver);
    #Send the email
    set_time_limit(300);
    $mailer->Send();

} //End of send_mail_to()

    ###### THE WORKING CODE ######

#Only authorised access is allowed.
if($_POST['signature']=="some-secret-signature-here"){
    $msg1=urldecode($_POST['text']);

    # Formatting the message a little
    $msg1=str_replace("#c0c0c0","#EAE99A",$msg1);
    $msg1=str_replace("<td","<td style='font-family:Trebuchet MS,Verdana,arial'; ",$msg1);

    #Start sending mails. Some lines commented for testing purpose
    //include("connection.php");
    //$result=mysql_query("SELECT * FROM subscribers");
    $subscriber=array('id'=>'1','email'=>'aakashrocks@gmail.com','active'=>'1');
    //while($subscriber=mysql_fetch_array($result)){
        if($subscriber['active']==1){  

            $body="Some text";
                send_mail_to($subscriber['email'], $body); 

        }    #End-of-if
    //}   #End-of-while

} ##End of if
?>

可能会出现页面刷新,从而导致多次执行-确保浏览器仅为每个接收者调用一次mail方法。为了确保这一点,您可以在发送时设置会话变量,并且只有在未设置会话时才进入发送部分

  if(!isset($_SESSION[$reciever]))
    {
       $_SESSION[$reciever] = 1;
       \\mail code here
    }
  else{
        echo "doing it more than once";
     }

您还可以将$mailer->$SingleTo设置为true,这样您就可以知道它是多执行还是单执行。您还可以将时间戳与电子邮件一起发送以进行更多调试。

我也遇到了同样的问题,但使用了SMTP连接。 我仍然不知道为什么,但是当你的收信人没有名字时就会发生这种情况。 因此,与其

$mailer->AddAddress($receiver);


希望有帮助。

我也遇到了同样的问题。就我而言,改变邮件系统就成功了

默认情况下,phpMailer使用邮件发送电子邮件。一旦我告诉它改用Sendmail,我就不再得到重复的地址

$email = new phpmailer;
$email->mailer = "sendmail";

我也有同样的问题,对我来说,解决办法就是改变

$mailer->isSMTP();



所以,试着使用
$mailer->mailer

也许看看邮件头会给你一个线索。在gmail中,点击“我,我”旁边的小向下箭头-确保其中一个不是抄送或密件抄送?有人找到解决方案吗?请贴出来?有人找到解决办法了吗?我很确定这不是解决办法。我在使用
$receive->AddCC($params['email'],“$first\u name$last\u name”)时也遇到同样的问题
$mailer->isSMTP();
$mailer->Mailer   = 'smtp';