首页 > 解决方案 > 使用 php 群发邮件

问题描述

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

?>

标签: phpmail-sendermassmail

解决方案


您可以使用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_sent0

请避免使用 mysql ......尝试使用 mysqli 或 PDO 而不是 ..


推荐阅读