Estou usando o PHPMailer 5.2 (https://github.com/PHPMailer/PHPMailer/tree/5.2-stable) no meu localhost (XAMPP 3.2.2) e tenho o seguinte problema:
Eu quero enviar um e-mail para muitas pessoas (a mensagem é um pouco diferente para cada uma delas). Então eu criei um FOR
para passar por todos os e-mails dessas pessoas que estão guardados em uma ARRAY
, enviando uma mensagem para cada um desses e-mails. O URL que eu insiro no meu navegador para executar o send-emails.php
que criei é como http://localhost/mailer/send-emails.php
, mas logo após o primeiro e-mail ser enviado, a página da web pára de carregar e nada mais acontece (sem erro de log, sem exceção, sem log do console, sem nada ...). Às vezes, se tiver sorte, o localhost consegue até enviar os dois primeiros e-mails da minha ARRAY
, mas depois pára.
Não sei por que o PHPMailer está parando depois que o primeiro ou o segundo e-mail são enviados (no exemplo abaixo, ele só enviaria para aaaa@gmail.com e, talvez, para bbb@gmail.com por ex).
Alguém poderia ajudar, por favor?
O código é:
<?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;
}
}