У меня есть база данных, содержащая более 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();
?>
Ты можешь использовать 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, а не ..
Других решений пока нет …