Моят код получава имейли от базата данни и му изпраща имейл с помощта на цикъл. Ако изпратя имейлите в групи от 25, това работи правилно, но когато таблицата надвиши 200 или 300 имейла, получавам тази грешка на екрана и изпращам само първите 150 имейла:
"Вътрешна грешка на сървъра
Сървърът се натъкна на вътрешна грешка или неправилна конфигурация и не успя да изпълни вашата заявка.
Моля, свържете се с администратора на сървъра, [email protected] и ги информирайте за часа на възникване на грешката и всичко, което може да сте направили, което може да е причинило грешката.
Повече информация за тази грешка може да има в регистъра на грешките на сървъра.
Освен това беше открита грешка 404 Not Found при опит за използване на ErrorDocument за обработка на заявката."
Проверявам регистъра на грешките на сървъра и е празен и мисля, че не е проблем с ограничението на smtp хостинг.
Има ли нещо, което правя грешно?
Редактиране: Грешката се появява 30 секунди след зареждане на мрежата.
Сървърът е в безопасен режим = изключен
Използвам:
ini_set('max_execution_time', 300);
Също така добавям в рамките на цикъла:
set_time_limit(3);
Но грешката все още е на 30 секунди.
Код:
require '../phpmailer/PHPMailerAutoload.php';
@MYSQL_CONNECT("xxx","xxx","xxx");
@mysql_select_db("xxx");
$query = "SELECT * FROM users";
$result = @MYSQL_QUERY($query);
while ($row = mysql_fetch_array ($result)) {
$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = 'smtp.xxx.com';
$mail->SMTPAuth = true;
$mail->SMTPKeepAlive = true;
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->Username = '[email protected]';
$mail->Password = 'xxx';
$mail->From = '[email protected]';
$mail->FromName = '[email protected]';
$mail->AddAddress($row["mail"]);
$mail->Subject = 'xxx';
$mail->Body = 'Hello World';
$mail->IsHTML(true);
$mail->CharSet = 'UTF-8';
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent to ".$row["mail"];
}
}
Много благодаря.