Newsletter et envoi de gros volume

WRInaute discret
Bonjour,

J'envoi des mails tous les jours aux visiteurs de mon site. Pour cela je fais une boucle dans le resultat d'un "select mail from newletter" et j'envoi le mail avec la fonction php "mail".

Le contenu est stocké dans une variable avant de rentrer dans la boucle.

Mon problème c'est que je n'arrive pas à envoyer plus de 1500 mails par heure.

Y a t il un moyen d'optimiser tout cela?

Merci
 
WRInaute accro
Sans doute.
Je ne sais pas comment, mais comment mon 60gp me permet d'en envoyer quelques centaines en quelques secondes, il doit y a voir moyen d'améliorer fortement ton débit.
 
WRInaute discret
Je suis obligé de les envoyer un par un car chacun contient un lien de desincription personnalisé. Est ce que c'est ton cas aussi?

Pour info j'ai un serveur dédié.
 
WRInaute accro
syrx20 a dit:
Je suis obligé de les envoyer un par un car chacun contient un lien de desincription personnalisé. Est ce que c'est ton cas aussi?

Pour info j'ai un serveur dédié.

Non, ce n'est pas mon cas.
Mais un script bien fait devrait permettre de faire mieux que ça, je pense.
Enfin, ce n'est qu'un "feeling" !
 
WRInaute discret
Voici mon code si ça peut aider :

Code:
set_time_limit(0);

//connexion bdd

$contenu="..."; 
  
$requete = mysql_query("SELECT mail FROM newsletter WHERE dernier_envoi<>'$datedujour';");
$cpt=0;

while($line=@mysql_fetch_array($requete))
{
  $contenu.=$desincription;

  $mail=mysql_result($requete,$cpt,0);    
    
  @mail($mail,$sujet,$contenu,$entete);   

  mysql_query("UPDATE newsletter SET dernier_envoi='$datedujour' WHERE mail='$mail'");
    
  $cpt++;
} 

//deconnexion bdd
 
WRInaute accro
Perso, je ne suis pas assez calé pour commenter ce code.
Une idée qui me vient : la limitation ne peut pas venir de l'hébergeur ?
 
WRInaute discret
Quelques idées en vrac

* au lieu de $mail=mysql_result($requete,$cpt,0); utilise plutôt $line['mail']
* j'espère que tu as créée un index sur le champs mail de ta table

après la relative lenteur vient peut être aussi de comment tu construis ta variable $desincription ou de tout autre traitement que tu ne nous fournis pas.
 
WRInaute discret
Non cela vient vraiment de la commande mail...

Je l'ai modifié par pear::mail qui est normalement plus adapté pour les boucles...mais c'est aussi lent

Apparemment certains envois sont beaucoup plus long que d'autres n'y a t il pas un paramétrage de Sendmail à ajuster pour éviter qu'il reste bloqué trop longtemps sur un envoi "difficile" ?
 
WRInaute impliqué
Question ouverte :

N'augmente-t-on pas le risque de blacklister l'ip d'un serveur mail par les FAI et les webmails en augmentant le rythme des envois ?
 
Discussions similaires
Haut