Page 1 sur 1

Newsletter : delai entre chaque mail

Posté : 21 janv. 2015, 18:32
par fabrice88250
bonjour,
je suis en train de mettre en place une newsletter sur mon site et mon hébergeur me demande de mettre un délai d’au moins une seconde entre chaque mail. (il semble que se soit pour éviter d’être identifier comme spammer).

j'ai donc en base de données mes adresses mail que je récupère pour l'envoie.
Le système fonctionne mais comment puis-je insérer un délai de 1 ou 2 secondes entre chaque envoie de mail ?

voilà ce que j'ai actuellement :
$objet = "Newsletter lacestchezmoi du $date"; 
 
//on définit le reste des paramètres
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= "From: [email protected]" . "\r\n"; 
$headers .= 'Reply-To: [email protected]' . "\r\n";
 
//je récupère de la table mesmail les personnes inscrites
$liste_vrac = mysql_query("SELECT mail FROM mesmail");
//je définis la liste des inscrits
$liste = '[email protected]';
    while ($donnees = mysql_fetch_assoc($liste_vrac))
    {
		//on envoie l'e-mail
		if ( mail($donnees['mail'], $objet , $message, $headers) ) 
		{
		?>
		Envoi de la newsletter réussi à <?php echo $donnees['mail'];?><br/>
		<?php
		}
		else
		{
		?>
		Échec de lors de l'envoi de la newsletter à <?php echo $donnees['mail'];?><br/>
		<?php
		}
    }
?>	
comment puis-je dire qu'il faut y avoir x secondes entre chaque mail ?

Re: Newsletter : delai entre chaque mail

Posté : 21 janv. 2015, 19:28
par Genova
sleep(1);
http://php.net/sleep

Par contre si t'as beaucoup de mails à envoyer ça risque d'être compliqué niveau temps d’exécution ...

Re: Newsletter : delai entre chaque mail

Posté : 21 janv. 2015, 21:02
par fabrice88250
Merci, donc j'intégre sleep(1); dans mon if c'est bien ça ?
 if ( mail($donnees['mail'], $objet , $message, $headers) )
                {
                ?>
sleep(1);
 Envoi de la newsletter réussi à <?php echo $donnees['mail'];?><br/>

pour les mail j'ai une liste d'environ 500 mails qui risque de grandir un peu.

sinon tu dis : Par contre si t'as beaucoup de mails à envoyer ça risque d'être compliqué niveau temps d’exécution ...

quelle autre solution existe-lit ?

Re: Newsletter : delai entre chaque mail

Posté : 21 janv. 2015, 21:20
par tof73
faire un script qui envoie X emails et qui rafraichis la page à la fin pour envoyer les X suivants, avec par exemple du javascript :

[javascript]
<script>
function g(){
location.replace("monscript.php?debut=$suivant");
}
setTimeout(g,10000);
</script>
[/javascript]

Re: Newsletter : delai entre chaque mail

Posté : 22 janv. 2015, 14:04
par @rthur
ou sinon, l'autre solution, c'est de passer par un tiers type mailchimp ou mailjet.
L'inconvénient c'est que tu deviens dépendant de leur service.
L'avantage, c'est qu'il ont des solutions de mailing-list plus abouties et complètes que ce que tu pourras jamais créé et qui auront moins de chance de tomber dans le répertoire spam de tes destinataires.