';至';使用PHPmailer时添加了两次地址
我正在使用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
<?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';