PHPMailer发送重复的电子邮件

时间:2018-07-23 10:03:01

标签: php email phpmailer

我在让我的php邮件发送器发送单个电子邮件时遇到了一个小问题,它不断发送重复邮件。我已经通过在主题的末尾放置一个随机数来检查脚本是否正在运行两次,但令人惊讶的是,这两封电子邮件都具有相同的主题,可以将其排除在外。因此,我认为最好的办法是换另一只眼睛看一下,看看它们是否可以解决我在这里可能出错的地方。顺便提一句,SMTPDebug不会输出,这也无助于解决此问题。当然,我已经将密码和主机更改为示例,但是我可以向您保证,电子邮件发送成功,但是出于某种奇怪的原因,它正在发送两个副本。

<?php    

    require("php/PHPMailer.php");
    require("php/SMTP.php");
    use PHPMailer\PHPMailer\PHPMailer;  

    $mail = new PHPMailer(true); 

    $mail->SMTPDebug = 2;
    $mail->isSMTP();
    $mail->Host = 'mail.example.com;';
    $mail->SMTPAuth = true;
    $mail->Username = 'info@example.com';
    $mail->Password = 'emailClientPass';
    $mail->SMTPSecure = 'ssl';
    $mail->Port = 465;

    $mail->setFrom('info@example.com', 'Info');
    $mail->addAddress('emailto@gmail.com', 'Email To Name');
    $mail->addReplyTo('info@example.com', 'Info');

    $mail->isHTML(true);
    $mail->Subject = 'Email Subject'.rand();;
    $mail->Body    = 'Email Body';
    $mail->AltBody = 'Email Body 2';

    $mail->send();

    if(!$mail->Send()) {
        echo 'Email Failed To Send.'; 
    } 
    else {
        echo 'Email Was Successfully Sent.'; 
    }

?>

2 个答案:

答案 0 :(得分:3)

这是错误

//$mail->send(); //remove this one its work

if(!$mail->Send()) {
    echo 'Email Failed To Send.'; 
} 
else {
    echo 'Email Was Successfully Sent.'; 
}

答案 1 :(得分:0)

@bhargav Chudasama,谢谢您的回复。我已经删除了

$mail->send();

并仅在下面的代码中编写,然后一次仅发送一封电子邮件:

    if(!$mail->Send()) {
    echo 'Email Failed To Send.'; 
} 
else {
    echo 'Email Was Successfully Sent.'; 
}