PHPMailer在我的for循环中发送第一封或第二封电子邮件后停止

时间:2018-07-02 22:45:34

标签: php xampp phpmailer

我在本地主机(XAMPP 3.2.2)中使用PHPMailer 5.2(https://github.com/PHPMailer/PHPMailer/tree/5.2-stable),但遇到以下问题:

我想向很多人发送1封电子邮件(每个人的邮件略有不同)。因此,我创建了一个for,以数组的形式浏览所有这些人的电子邮件,并向每个地址发送1封电子邮件。我在浏览器中输入的用于运行send-emails.php的URL类似于http://localhost/mailer/send-emails.php,但是在发送第一封电子邮件后不久,该网页就停止了加载,并且没有任何反应(无日志错误,无异常) ,没有控制台日志,什么都没有...)。有时,如果幸运的话,本地主机可以从阵列发送2封电子邮件,但随后它将停止。

我不知道为什么在发送第一封或第二封电子邮件后,PHPMailer为何停止运行(在下面的示例代码中,它只会发送到aaaa@gmail.com,也许还会发送到bbb @ gmail。 com)。

有人可以帮忙吗?

代码是:

<?php
ini_set('MAX_EXECUTION_TIME', 3600);

include('PHPMailerAutoload.php');

$mail = new PHPMailer();
$mail->isSMTP();
$mail->CharSet = 'UTF-8';
$mail->Host = 'smtp.office365.com';
$mail->Port = 587;
$mail->SMTPSecure = 'STARTTLS';
$mail->SMTPAuth = true;
$mail->Username = "xxxx@xxxx"; //my e-mail
$mail->Password = "xxx";       //my password
$mail->setFrom("xxxx@xxxx", "Xxxx");

//'To' addresses
$email = array("aaaa@gmail.com","bbb@gmail.com","cccc@gmail.com","dddd@gmail.com","eeee@gmail.com");

for ($i=0; $i < sizeof($email); $i++) { 
    try {
        $mail->addAddress($email[$i]);
        //Blind copy to myself
        $mail->AddBCC("xxxx@xxxx", "Xxxx");

        $mail->Subject = "...";

        $mensagemHtml = "...";
        $mensagemBody = "...";
        $mail->msgHTML("<html>{$mensagemHtml}</html>");
        $mail->AltBody = "{$mensagemBody}";

        $mail->send();

        $mail->clearAddresses();
    } catch (Exception $e) {
        echo 'Error: ' . $mail->ErrorInfo;
    }
}

0 个答案:

没有答案