2014-11-28 2 views
1

PHPMailerPHPMailer посылает Duplicate Email

<?php 
    $mail = new PHPMailer; 
    $mail->IsSMTP(); 
    $mail->IsHTML(true); 
    $mail->SMTPSecure = "tls"; 
    $mail->Mailer = "smtp"; 
    $mail->Host = "smtp.office365.com"; 
    $mail->Port = 587; 
    $mail->SMTPAuth = true; // turn on SMTP authentication 
    $mail->Username = "xxx"; 
    $mail->Password = "xxx"; 
    $mail->setFrom('xxx', 'Website'); 

    //Send to Admin 
    $AdminEmail = '[email protected]'; 
    $mail->AddAddress($AdminEmail, $AdminName); 
    $mail->Subject = "This is an email"; 
    $mail2 = clone $mail; 
    $body = 'Hi Admin. This is an email'; 
    $mail->Body = $body; 

    if(!$mail->Send()) { 
    echo 'Message was not sent.'; 
    echo 'Mailer error: ' . $mail->ErrorInfo; 
    } else { 
    echo 'Message has been sent.'; 
    } 

    //Send to User 
    $UserEmail = '[email protected]'; 
    $mail2->AddAddress($UserEmail, $UserName); 
    $body2 = 'Hi User. This is an email'; 
    $mail2->Body = $body2; 

    if(!$mail2->Send()) { 
    echo 'Message was not sent.'; 
    echo 'Mailer error: ' . $mail2->ErrorInfo; 
    } else { 
    echo 'Message has been sent.'; 
    } 
?> 

У меня есть вопрос, где, когда я отправить электронную почту, Администратор получит $mail и $mail2 когда предполагается только получить $mail. Хотя нет проблем с Пользователь. Прекрасно работает, получая $mail2. Я попытался поставить $mail->ClearAddresses();, но он все тот же. В чем проблема?

+3

Я полагаю, вы положили в AddAddress, после чего вы клонируете переменную. Может быть, клонировать переменную, прежде чем вводить адрес электронной почты администратора? – Casper

+0

@Casper Wow. Это простая ошибка, и я не понял. Благодаря! И я застрял часами: | –

+0

@ Каспер вы можете отправить ответ? Так что я могу принять его? Благодаря! –

ответ

1

Clone переменной электронной почты, прежде чем добавить адрес и прочее админа. (Как указано в комментариях)

1

Вам нужно создать разный-другой объект как для администратора и пользователя электронной почты

//Send to Admin 
$mail = new PHPMailer; 
$mail->IsHTML(true); 
$AdminEmail = '[email protected]'; 
$mail->AddAddress($AdminEmail, $AdminName); 
$mail->Subject = "This is an email"; 
$mail2 = clone $mail; 
$body = 'Hi Admin. This is an email'; 
$mail->Body = $body; 

if(!$mail->Send()) { 
echo 'Message was not sent.'; 
echo 'Mailer error: ' . $mail->ErrorInfo; 
} else { 
echo 'Message has been sent.'; 
} 

//Send to User 
$mail = new PHPMailer; 
$mail->IsHTML(true); 
$UserEmail = '[email protected]'; 
$mail->AddAddress($UserEmail, $UserName); 
$body2 = 'Hi User. This is an email'; 
$mail->Body = $body2; 

if(!$mail->Send()) { 
echo 'Message was not sent.'; 
echo 'Mailer error: ' . $mail->ErrorInfo; 
} else { 
echo 'Message has been sent.'; 
} 
Смежные вопросы