Ce forum est maintenant fermé, seule cette archive statique reste consultable.
Bas de page
Auteur Sujet :

Mail php

n°13002
ryosan
Profil : Membre
Posté le 11-05-2005 à 13:28:23  
 

Salut à tous!
 
Je récupère les emails des gens qui sont inscrits sur un site, dans une base de données, et je voudrais avec un formulaire envoyer un seul message à toutes ces personnes, avec la fonction mail, qui fonctionne comme ça : mail($destinaire, $sujet, $message) Mais voilà j'arrive pas à regrouper les emails et les séparer par une virgule, de plus l'idée est là mais le code est très lourd et pas rigoureux, mais je vois pas comment faire :(
 

Code :
  1. include "fonctions.inc.php"
  2. connexion(login, password, base);
  3. $result=requete("SELECT * FROM correspondants ORDER BY email_cor" );
  4. $i=0;
  5. $nb=mysql_num_rows($result);
  6. while ($i<$nb) {
  7. $data.$i=mysql_fetch_object($result);
  8. $i=$i+1;
  9. }
  10. $i=0;
  11. $dest="";
  12. while ($i<$nb) {
  13. $dest=$dest.($data.$i).", ";
  14. $i=$i+1;
  15. }
  16. mail($dest, "test sujet", "test message" );


 
Je sais pas si ça fonctionne comme ça mais c'est clair que c'est fait à l'arrache... y'a til un moyen plus propre ?  
 
Merci.


Message édité par ryosan le 11-05-2005 à 13:29:54
mood
Pub
Posté le 11-05-2005 à 13:28:23  
 

n°13004
ryosan
Profil : Membre
Posté le 11-05-2005 à 14:09:07  
 

Faites pas gaffe à mon code, il est faux :)
 
Je voudrais savoir comment on récupère les email de la base et les séparer par une virgule pour la fonction mail.

n°13005
ollone
Part of the 'One brothers
Profil : Vieux de la vieille
Posté le 11-05-2005 à 14:13:08  
 

Code :
  1. $emailList = "";
  2. $result=requete("SELECT email_cor as email FROM correspondants ORDER BY email_cor" );
  3. while ($anEmail = mysql_fetch_array($result) {
  4.     $emailList = $anEmail["email"].";"
  5. }


 
De plus, si tu envois le même mail à plusieurs personnes, fais en sorte que les destinataires ne voit pas qu'il y a plusieurs destinataires, ca ne fait pas "personnalisé" et ca peut être gênant...

n°13006
ryosan
Profil : Membre
Posté le 11-05-2005 à 14:22:01  
 

c'est mieux, mais j'ai essayé de faire un echo $emailList à la fin et il m'affiche que le dernier email... donc il enverra un mail qu'à cette personne...


Message édité par ryosan le 11-05-2005 à 14:23:10
n°13007
Nodashi
Silence je dors
Profil : Dinosaure
Posté le 11-05-2005 à 14:38:09  
 

ollone a écrit :

Code :
  1. $emailList = "";
  2. $result=requete("SELECT email_cor as email FROM correspondants ORDER BY email_cor" );
  3. while ($anEmail = mysql_fetch_array($result) {
  4.     $emailList .= $anEmail["email"].";"
  5. }


 
De plus, si tu envois le même mail à plusieurs personnes, fais en sorte que les destinataires ne voit pas qu'il y a plusieurs destinataires, ca ne fait pas "personnalisé" et ca peut être gênant...


 
 
$emailList = $anEmail["email"].";" -> $emailList .= $anEmail["email"].";"


---------------
informatique / jeu vidéo
n°13008
ryosan
Profil : Membre
Posté le 11-05-2005 à 15:21:01  
 

Merci. Il faut séparer les éléments du tableau par une virgule et pas un point virgule. Sinon c'est bon, même s'il m'en met une après le dernier email... tant pis.  
 
Comment faire pour les copies carbonées invisibles Bcc ? parce que là j'ai cherché y'a aucune documentation et ni exemple précis, je crois meme qu'il y a un bug avec cette option sur Windows...  

n°13012
ollone
Part of the 'One brothers
Profil : Vieux de la vieille
Posté le 11-05-2005 à 17:21:51  
 

Désolé pour l'oubli du '.' :D  D'un seul coup, ca perd de son intérêt :ddr:
Merci Noda pour la rectification :jap:
 
 
Pour le reste, tu dois manipuler les headers du mail :
http://fr2.php.net/manual/fr/ref.mail.php
http://www.allhtml.com/php/php459.php

© 2000-2024 Forum.rue-montgallet.com - Tous droits réservés