PHPMailer与Gmail smtp结合发送邮件两次

时间:2013-06-19 15:25:38

标签: phpmailer

我在PHPMailer中遇到了一些奇怪的行为。我正在使用我的Gmail帐户进行SMTP设置。但每次PHP发送电子邮件(在这种情况下,它是用于重置密码),我也会收到相同的电子邮件。除了为我的Gmail帐户请求密码重置时。

这是代码;

//set email settings
            $mail       =   new PHPMailer;
            $mail->IsSMTP();                                      // Set mailer to use SMTP
            $mail->Host = 'ssl://smtp.gmail.com';  // Specify main and backup server
            $mail->SMTPAuth = true;                               // Enable SMTP authentication
            $mail->Port = 465;
            $mail->Username = 'mymail@gmail.com';                            // SMTP username
            $mail->Password = 'mypassword';                           // SMTP password

            $mail->From = 'noreply@bla.com';
            $mail->FromName = 'Bla';
            $mail->AddAddress($email);               // Name is optional
            $mail->IsHTML(true);                                  // Set email format to HTML

            $mail->Subject  = 'Bla registration';
            $mail->Body ="
            <html>
                <header><title>Welcome to Bla</title></header>
                <body>
                <p>Hello,</p>
                <p>Welcome to Bla. Thank you for registering an account. Before you can start inventing music, please activate your account</p>
                <p><a href='http://www.bla.com/register/activate.php?activation=$activationcode&email=$email'>  http://www.Bla.com/register/activate.php?activation=$activationcode&email=$email</a></p>
                See you soon on Bla!
                </body>
            </html>";
$mail->Send();

没有错误或类似的东西。电子邮件实际上是发送和接收的。唯一的问题是我收到的也是因为用户名中的电子邮件地址是我的电子邮件地址。有谁知道为什么会这样?

2 个答案:

答案 0 :(得分:1)

像这样添加ClearAddresses-&gt;

$mail->Send();
$mail->ClearAddresses();

并解决了。

Greetens

答案 1 :(得分:0)

尝试更改

$mailer->isSMTP();

$mailer->Mailer = 'smtp';