我有一个包含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: adresse@fai.fr'."\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();
?>
答案 0 :(得分:0)
您可以使用 PHPMAILER
我不知道以下解决方案是否对您有用。.但是,我只是建议您发送其他电子邮件,以发送大量电子邮件,而不会出现垃圾邮件或托管提供商每小时电子邮件限制等问题。 / p>
========
此外,您可以在发送电子邮件时使用带有限制的查询并更新数据库列...
例如
在数据库表中添加其他列'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。