Bonjour à tous,
Je suis en train de developper un petit script d'envoi de newsletter en php. Je le met ici afin d'avoir vos avis. Quelles améliorations selons vous devraient être apportées.
De plus, il est fréquent de voir des post (pas uniquement sur ce forum) de personne recherchant des scripts de ce style, cela pourrait peut être en aider quelques-uns à se lancer.
Cependant ce petit bout de code ne sert qu'a gérer l'envoi des mails present dans une table "mailing".
J'aimerais bien que vous partagiez avec moi vos connaissances à ce sujet. Je compte envoyer en moyenne 20 000 mails tous les 2 ou 3 jours. Ce petit script est-il suffisant pour permettre aux mails de bien arriver à destination en temps et en heure?
Voici le petit bout de code:
Je suis en train de developper un petit script d'envoi de newsletter en php. Je le met ici afin d'avoir vos avis. Quelles améliorations selons vous devraient être apportées.
De plus, il est fréquent de voir des post (pas uniquement sur ce forum) de personne recherchant des scripts de ce style, cela pourrait peut être en aider quelques-uns à se lancer.
Cependant ce petit bout de code ne sert qu'a gérer l'envoi des mails present dans une table "mailing".
J'aimerais bien que vous partagiez avec moi vos connaissances à ce sujet. Je compte envoyer en moyenne 20 000 mails tous les 2 ou 3 jours. Ce petit script est-il suffisant pour permettre aux mails de bien arriver à destination en temps et en heure?
Voici le petit bout de code:
Code:
<?
include("connexion_db.php");
$nbenvoi=0;
//on recupere le code source de page.php, ce sera le message du mail
ob_start();
include('page.php');
$message = ob_get_contents();
$destinataires="";
$objet = "Titre du mail" ;
// Si l’on veut envoyer un mail au format HTML, il faut configurer le type Content-type. */
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$headers .= "From: site.com <webmaster@site.com>\n";
//===INITIALISATION===//
//nbre total de mails
$sql=@mysql_query("select count(*) from mailing");
$total=@mysql_fetch_row($sql);
$total=$total[0];
//prochain numéro de paquet à envoyer
$numpaquet=1;
//nombre de mails par paquet
$nb=100;
//determine le nombre de paquet de 100 mails à envoyer (arrondi a l'entier superieur)
$nbpaquet=ceil($total/$nb);
//on envoie les paquets 1 par 1 avec 10 secondes de delai entre chacun
for ($i=1;$i<=$nbpaquet;$i ++)
{
$debut=($numpaquet-1)*$nb;
$infos=@mysql_query("Select * FROM mailing LIMIT $debut,$nb");
while($res=@mysql_fetch_assoc($sql))
{
$destinataires = $res["email"];
// On envoi l’email
if ( mail($destinataires, $objet, $message, $headers,"-fwebmaster@site.com") ){ $nbenvoi=$nbenvoi+1;}
$destinataires="";
}
$numpaquet++;
sleep(10);
}
echo $nbenvoi;
ob_end_flush();
?>