отправитель почты — массовая рассылка с переполнением стека

У меня есть база данных, содержащая более 2000 контактов, я хочу использовать массовую рассылку, но я не знаю, как это сделать, я использовал этот код, но я думаю, что это бесполезно, потому что количество писем важно и mail() не может работать для массовой рассылки.

<?php

require ("bdd.php");

$sql = "SELECT adresse FROM newsletter WHERE envoie='1';";
$result = mysql_query($sql);

while($row = mysql_fetch_array($result))
{
$en_tete ='From: '. $row['adresse'] .''."\n";
$en_tete .='Reply-To: [email protected]'."\n";
$en_tete .='Content-Type: text/html; charset="iso-8859-1"'."\n";
$en_tete .='Content-Transfer-Encoding: 8bit';
$contenu ='<html><head><title>Envoie html</title></head><body><p>TEST !</p></body></html>';

mail($row['adresse'], 'Envoie mail', $contenu,  $en_tete)
}

mysql_close();

?>

-1

Решение

Ты можешь использовать PHPMailer

Я не знаю, полезно ли следующее решение для вас или нет .. Но я просто предлагаю альтернативное мышление, чтобы отправлять массовые электронные письма без каких-либо проблем, таких как спам или ограничение хостинга электронной почты провайдера в час и т. Д. …..

========

Кроме того, вы можете использовать свой запрос с лимитом и обновить столбец базы данных при отправке электронной почты …

например

Добавить дополнительный столбец 'email_sent' в вашей таблице базы данных …

и измените запрос на

$sql = "SELECT adresse FROM newsletter WHERE envoie='1' and email_sent='0' order by id desc limit 25";
// Limit can be any...10 or 25 or 50 etc... this will limit total emails at a time...


//in while clause, add query to Update database >> `email_sent`=>1...

С помощью cronjob вы можете сбросить email_sent в 0 снова …. или с простой ссылкой на скрипт, который содержит запрос на сброс / обновление email_sent в 0 для всех 2000+ строк можно использовать …

Пожалуйста, избегайте mysql …… Попробуйте Mysqli или PDO, а не ..

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]