使用php进行群发邮件

时间:2018-08-29 14:51:30

标签: php mail-sender massmail

我有一个包含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();

?>

1 个答案:

答案 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。