Envoi mails multiples par fonction php

Fermé
Dieden - 12 févr. 2009 à 22:39
 noyuw - 1 nov. 2009 à 03:53
Bonjour,

Je suis en train de créer une page en php (ou plutôt un couple formulaire html + page php) pour envoyer un mail avec pièce jointe à une liste d'adresses extraites d'une base de données SQL.
Cette liste comprendrait jusqu'à une cinquantaine d'adresses.
Ma question est donc la suivante :
- est-ce que je peux mettre toutes les adresses à la queue leu leu séparées par des points-virgules en variable $to ou, autrement dit, quel est le nombre maxi de caractères que l'on peut mettre dans le champ d'envoi ?
- si ce n'est pas possible, puis-je sans problème faire une boucle et envoyer 50 fois le même mail à 50 destinataires différents ? (et donc 50 fois la pièce jointe !!! c'est pas top, ça !)
Merci de votre aide
Max
A voir également:

5 réponses

@ niahoo

tu as fait une petite erreur ici:

$i = $j + 1 // ce qui donne 11
$j = $j + 10 // ce qui donne 20


ta boucle augmente de 10 a chaque passage le nombre d'email utilisés.

une petite correction :


$i = $i + 10; // ce qui donne 11, et ensuite 21, 31 ect..
$j = 10 ; // le nombre d'email max selectionnés


Voilou sinon merci pour ton aide j'ai pu terminé mon script !
1
Bonjour

As-tu regardé dans le manuel PHP ce qui était autorisé pour le paramètre $to de la fonction mail, avant de demander ici ?
0
Merci pour ta réponse.
Bien sûr que j'ai cherché sur le net avant de demander et j'ai effectivement trouvé une limite dans la taille des adresses mail de destination (curieusement j'ai même trouvé des réponses différentes !).
Mais ici il s'agit de plusieurs adresses et je ne sais justement pas si la limite est la même pour l'ensemble.
Remarque, je pourrais tester et m'envoyer 50 fois le même message ;-)
Max
0
niahoo Messages postés 247 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 23 mai 2010 19
13 févr. 2009 à 00:33
fais une boucle..

chez moi je me suis fait un programme pour pouvoir envoyer facilement le même mail $nombre fois à un pote pour le faire chier (mouah ha ha ha ha)

seulement quand même j'ai testé sur moi d'abord, et comme je m'étais gouré dans ma clause:
for($i=1; $i>=$nombre; $i++)
{

}

tu vois l'erreur ;) ben c'est pas logique mais ça m'envoyait des mails a l'infini au lieu de zéro, et je m'en suis donc envoyé à peu près 120 avant le timeout, puis environ 60 avant de recevoir des codes d'erreur du serveur smtp "vous envoyez trop de mails"

donc 50 oui c'est largement possible.

par contre, elle est lourde ta piece jointe ?
0
Merci Niahoo, j'y avais pensé à faire une boucle mais les pièces-jointes peuvent faire 2 ou 3 mégas et nous serons plusieurs à utiliser la page php, alors j'aimerais bien ne pas exagérer non plus....
0
niahoo Messages postés 247 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 23 mai 2010 19
13 févr. 2009 à 12:59
dans ce cas la, tu utilises la clause LIMIT dans ta requete sql, pour ne prendre que x adresses à la fois.

mettons 10


1. tu fais une requete pour savoir combien il y a d'adresses.
tu stocke ça dans

$total = ce_nombre;


et une varaible qui nous dit de continuer à envoyer des mails

$boucle = 1;



2. tu déclares 2 compteurs:
$i = 1 et $j = 10


3. début de la boucle

while($boucle =1) 
{

   4. la requete qui récup les adresses, avec à la fin: "LIMIT ".$i.", ".$j.
 
   // ce qui donne LIMT 1, 10

   //donc ça récupère les 10 premieres adresses, puis tu fais l'envoi en mettant ces 10 adresses dans le mail

   5 .ensuite tu fais
 
   if($j == $total) { $boucle = 0; } // on a fait toutes les adresses dans ce cas la alors on stoppe, $boucle = 0 donc on ne repassera plus dans le while   

// sinon ben on va prendre les 10 adresses suivantes :

   $i = $j + 1 // ce qui donne 11
   $j = $j + 10 // ce qui donne 20
   // donc prochaine requete= "LIMIT 11, 20
   if( $j >= $total ) { $j = $total; } // on limite la requete au max d'adresses

 } 


voilà, ça te permet d'envoyer plusieurs mails en même temps àa cause de la pièce jointe, mais d'utiliser une boucle si tu as beaucoup d'adresses et que ça ne rentre pas dans un seul mail. et tu l'aura compris, juste quelques chiffres à changer pour en envoyer 20 a la fois au lieu de 10, etc..
0
excellent !
c'est ce que je vais faire !
Merci Niahoo !

Bon après-midi !
Max
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
niahoo Messages postés 247 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 23 mai 2010 19
13 févr. 2009 à 14:46
ac plaisir, bonne chance
0