[script] Envoi de Newsletter

Nixo
WRInaute discret
WRInaute discret
 
Messages: 78
Inscription: 9 Juil 2004

[script] Envoi de Newsletter

Message le Mar Sep 19, 2006 17:45

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:

Code: Tout sélectionner

<?
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();
?>


Grantome
WRInaute accro
WRInaute accro
 
Messages: 2899
Inscription: 16 Jan 2004

Message le Mar Sep 19, 2006 17:57

Ton problème va se situé sur les antispam des boite type hotmail, yahoo etc...

Nixo
WRInaute discret
WRInaute discret
 
Messages: 78
Inscription: 9 Juil 2004

Message le Mar Sep 19, 2006 18:01

Existe-il une solution pour contourner ce problème?

Grantome
WRInaute accro
WRInaute accro
 
Messages: 2899
Inscription: 16 Jan 2004

Message le Mar Sep 19, 2006 18:08

wanewsletter :-)


lothar
WRInaute passionné
WRInaute passionné
 
Messages: 1531
Inscription: 12 Juil 2003

Message le Mar Sep 19, 2006 18:08

Oui, signer des accords, avoir une politique responsable, des serveurs d'envoi dédiés et cleans, etc.

Grantome
WRInaute accro
WRInaute accro
 
Messages: 2899
Inscription: 16 Jan 2004

Message le Mar Sep 19, 2006 18:30

lothar a écrit:Oui, signer des accords, avoir une politique responsable, des serveurs d'envoi dédiés et cleans, etc.

Autant dire impossible comme ça ;-)

Nixo
WRInaute discret
WRInaute discret
 
Messages: 78
Inscription: 9 Juil 2004

Message le Mar Sep 19, 2006 18:33

Ouais on dirait bien :'(


finstreet
WRInaute accro
WRInaute accro
 
Messages: 16999
Inscription: 10 Juil 2005

Message le Mar Sep 19, 2006 22:11

il faut tenir compte du plantage de la fonction mail aussi qui n'est pas si rare que ca


scourtaud
WRInaute discret
WRInaute discret
 
Messages: 242
Inscription: 12 Aoû 2006

Message le Mar Sep 19, 2006 23:59

Je sais qu'il y a sur le site de Zend.com un code que j'ai pas reussi a retrouver pour envoyer des mails de manière simple mais qui passe la plupart des tests...


Amicalement

Sebastien

rikew
WRInaute impliqué
WRInaute impliqué
 
Messages: 723
Inscription: 19 Déc 2002

Message le Jeu Oct 05, 2006 11:26

Grantome a écrit:wanewsletter :-)


Comment ce script peut-il "éviter" les filtres anti-spam ?

Grantome
WRInaute accro
WRInaute accro
 
Messages: 2899
Inscription: 16 Jan 2004

Message le Jeu Oct 05, 2006 11:43

rikew a écrit:
Grantome a écrit:wanewsletter :-)


Comment ce script peut-il "éviter" les filtres anti-spam ?


Il est bien codé.

J'ai jamais chercher à connaitre les header qu'il utilise, ce pourrait être interessant.

rikew
WRInaute impliqué
WRInaute impliqué
 
Messages: 723
Inscription: 19 Déc 2002

Message le Jeu Oct 05, 2006 17:10

Grantome a écrit:
rikew a écrit:
Grantome a écrit:wanewsletter :-)


Comment ce script peut-il "éviter" les filtres anti-spam ?


Il est bien codé.

J'ai jamais chercher à connaitre les header qu'il utilise, ce pourrait être interessant.


Oui ça doit venir des headers. Comme tu dis, il suffirai de jeter un œil sous le capot…

pierre_jean
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 339
Inscription: 6 Avr 2005

Message le Ven Juin 29, 2007 13:18

Un retour Nixo sur ton étude de la classe Mailer() (headers ....) exploitable ?

merci.


lothar
WRInaute passionné
WRInaute passionné
 
Messages: 1531
Inscription: 12 Juil 2003

Message le Ven Juin 29, 2007 14:00

Les headers ne font pas tout.

Si en face tu as un FAI chatouilleux ou un DSI qui classe en spam tout ce qui n'est pas en SPF ou DomainKeys...

pierre_jean
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 339
Inscription: 6 Avr 2005

Message le Ven Juin 29, 2007 14:51

Je pense que c'est pour les FAIs "standards" et "connus", style hotmail, gmail, yahoo ... and co
pas les autres

[script] Envoi de Newsletter

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités