IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Mail] Script perso de Newsletter : petit problème


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut [Mail] Script perso de Newsletter : petit problème
    Bonjour à vous,

    Je suis entrain de coder un module de Newsletter pour un site que je fais, mais je rencontre un problème qui commence à m'énerver.

    Je n'arrive pas à faire que l'email soit envoyés à plusieurs membres en même temps ! Soit il n'y a que le premier qui le recoit, soit personne...

    Voici une partie de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    	$sujet=$_POST['sujet'];
    	$dest=$_POST['dest'];
    	$message="la blague de toto";
     
    		// Envoyer aux admins :
    		if ($dest=="admin") {
    			$sql=mysql_query("SELECT mail FROM membres WHERE niveau=2");
    			while ($data=mysql_fetch_object($sql)) {
    				if ($data->mail!="") @$destinataire.=$data->mail.", ";
    			}
    		}
     
    		// On vire le ', ' final pour éviter les bugs ( je sais c pas super mais sa fonctionne )
    		if (preg_match("!,!",$destinataire)) {
    			$dest2=substr($destinataire, 0, -2);
     
    		}
     
       $entete = 'Reply-to: '.$_SESSION['sess_mail']."\r\n"// Adresse utilisée pour la réponse au mail
        .'From: "'.$_SESSION['sess_pseudo'].'"<'.$_SESSION['sess_mail'].">\r\n"// Adresse de l'expéditeur (format : Nom <adresse_mail>)
        .'X-Sender: '.$_SESSION['sess_mail']."\r\n"// Adresse réelle de l'expéditeur
        .'Date: '.date('l j F Y, G:i')."\r\n"// Date de l'envoie de l'E-Mail
        .'Content-Type: text/html; charset=iso-8859-1'."\r\n"//Contenu du mail (texte, html...)
    	.'Content-Transfer-Encoding: 7bit'."\r\n";
     
       if (mail($dest2,$sujet,$message,$entete)) {
       	$contenu="<br><br><center>Les emails ont été envoyés avec succés !<br><br>
    	".$dest2; }
       else {
       	$contenu="<br><br><center>Une erreur est intervenu durant l'envoie du mail"; }
    Le format de $dest2 à la fin du script est : xxxxxxxxxxx.fx@gmail.com, xxxxxxxxxx.cs@hotmail.com et dans ce cas seul le premier mail reçois le message
    Je pense que le problème vient du faire que je met toutes les adresses dans la première valeur de mail(). Il doit y avoir un moyen de le mettre dans les entêtes mais je ne retrouve plus cette fonction.

    Merci de m'aider !

    ps : Script hébergé chez 1et1

  2. #2
    Inscrit Avatar de sanosuke85
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 206
    Points : 179
    Points
    179
    Par défaut
    oyo,

    pour moi y'a un soucis après ta boucle while() où ta variable de tableau est $data. Ensuite tu l'utilise comme une classe $data->variable alors que ce serait plutôt $data['variable']... Sauf si c'est possible de coder comme ça je ne connais pas tout encore

  3. #3
    Invité
    Invité(e)
    Par défaut
    Non le problème de viens pas du tout de là !

    j'utilise $data->var avec la fonction mysql_fetch_object et non pas mysql_fetch_array qui utilise une syntaxe $data[var].
    Mais au final sa reviens strictement au même ( du point de vue pratique '->' est plus rapide à faire de '[ ]' ).

    Et j'ai fait des tests, le pbm est au niveau du mail pas au niveau de la formation de $destinaire ( on peut le voir à la fin quand j'affich $dest2 ).
    Dernière modification par Domi2 ; 06/05/2011 à 14h50.

  4. #4
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    a tout hasard ca serais pas des ; pour séparer les differentes adresses ?
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  5. #5
    Invité
    Invité(e)
    Par défaut
    J'avais fait un test avec des ; mais sa m'affichait 'Une erreur est intervenu durant l'envoie du mail' ( erreur dans mail(); )

    Mais je vais réessayer.

  6. #6
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    apres avoir regardé la doc de mail c est bien des ,

    as tu essayer de faire plusieurs envois ? un par mail.

    pour vérifier que c est pas une adresse qui pose probleme.
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  7. #7
    Invité
    Invité(e)
    Par défaut
    ah ué jpense que je vais faire comme sa.

    Je programme sa et je vous dit ce que sa donne !

  8. #8
    Inscrit Avatar de sanosuke85
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 206
    Points : 179
    Points
    179
    Par défaut
    je n'avais pas fait attention que tu utilisais mysql_fetch_object... au moins j'aurais appris une chose aujourd'hui hehe ^^

    Pour l'envoi de mail je pense oui qu'il est mieux d'envoyer un mail par adresse... donc +1 siddh (et bonjour par l'occasion )

  9. #9
    Invité
    Invité(e)
    Par défaut
    Voilà en faisant email par email sa fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    	function envoie_email($dest) {
    	   global $contenu; global $sujet; global $message; global $entete;
     
        if (mail($dest,stripslashes($sujet),stripslashes($message),$entete)) {
    		$contenu.="Email : $dest ............................. OK<br>"; }
    	   else {
    		$contenu.="Email : $dest ............................. FAILED<br>"; }
    	}
     
     
    		// Envoyer aux admins :
    		if ($dest=="admin") {
    			$sql=mysql_query("SELECT mail FROM membres WHERE niveau=2");
    			while ($data=mysql_fetch_object($sql)) {
    				envoie_email($data->mail);
    			}
    		}
    J'ai créer une fonction car j'ai plusieurs champs if ($dest=="xxxx") différents.

    Merci à vous

  10. #10
    Inscrit Avatar de sanosuke85
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 206
    Points : 179
    Points
    179
    Par défaut
    Bon courage pour la suite

    Penses à s'il te plaît

  11. #11
    Invité
    Invité(e)
    Par défaut
    J'allais le faire ( mais manuellement, j'avais pas vu le bouton ! )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Divers petits problèmes avec mon script
    Par fourniey dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 26/12/2007, 16h20
  2. Petit problème de script shell
    Par Mainman dans le forum Linux
    Réponses: 4
    Dernier message: 11/12/2007, 08h07
  3. [Configuration] petit problème avec php.ini pour la fonction mail()
    Par momoh dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 06/04/2007, 01h39
  4. [Mail] Petit problème de fonction
    Par cyrill.gremaud dans le forum Langage
    Réponses: 13
    Dernier message: 25/08/2006, 12h39
  5. (Batch et VBS) Petit probléme avec un script batch VBS
    Par Edoxituz dans le forum Windows
    Réponses: 11
    Dernier message: 27/02/2006, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo