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

Bibliothèques et frameworks PHP Discussion :

phpmailler envoi en double


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 295
    Points : 135
    Points
    135
    Par défaut phpmailler envoi en double
    Bonjour,

    j'ai un soucis avec la bibliothèque d'envoi d'email de phpmailler, elle fonctionne tres bien mais tous les emails sont envoyes en double a chaque fois je ne vois pas ou se trouve le probleme meme avec l'exemple de test du site
    je sais que la question à été pose plusieurs fois sur le forum mais c'est reste sans reponse
    avez vous déjà ce probleme

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Sans voir la moindre ligne de code c'est impossible de répondre.

    Il peut arriver que ta page soit exécuté deux fois à cause d'un HTML mal écrit.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 295
    Points : 135
    Points
    135
    Par défaut voici mon code
    voici mon code le mail est envoye deux fois les post correspondent a mes champs de formulaire
    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
      $mail= new PHPMailer();
     
     
      	$mail->From = $_POST['email'];
    	$mail->FromName= $_POST['nom'];
    	$mail->Subject =$_POST['subject'];
    	$mail->Body=$_POST['message'];
    	$mail->AddAddress("herve.xxxx@free.fr", "mon nom");
    	$mail->send();
     	if(!$mail->Send()){ 
     
              echo $mail->ErrorInfo();  
     
            }  else {
         $messageok="Vous message à bien été envoyé, une réponse vous sera apportée dans les plus brefs délais";
      }
    alors que sur le message d'exemple il est bien envoye en une seule fois
    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
     
     require('class/class.phpmailer.php');
     
     $mail = new PHPMailer();
     
       // De qui vient le message, e-mail puis nom
       $mail->From = "nom@free.fr";
       $mail->FromName = "Nom Prénom";
     
       // Définition du sujet/objet
       $mail->Subject = "Un mail envoyé avec PHPMailer!";
     
       // On définit le corps du message
       $mail->Body = "Bonjour!";
     
       // Il reste encore à ajouter au moins un destinataire
       // (ou plus, par plusieurs appel à cette méthode)
       $mail->AddAddress("nom.prenom@gmail.com", "moi");
     
       // Pour finir, on envoi l'e-mail
       $mail->send();

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu fais deux fois send() c'est donc un peu normal.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 295
    Points : 135
    Points
    135
    Par défaut bonjour
    merci de ton retour tu veux dire cette condition ?
    je veux dire que si le mail n'a pas été envoye il affiche les infos
    mais je vais tester ton idee en enlevant cette condition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if(!$mail->Send()){ 
     
              echo $mail->ErrorInfo();  
     
            }  else {
         $messageok="Vous message à bien été envoyé, une réponse vous sera apportée dans les plus brefs délais";
      }

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ce n'est pas la condition qu'il faut retirer c'est le premier
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 434
    Points : 43 065
    Points
    43 065
    Par défaut
    tout comme en C :
    if(!$mail->Send())
    va exécuter $mail->Send() et c'est le retour de cette fonction qui va être évalué par if, la fonction $mail->Send() retournant un booléen.

    if(!$mail->Send())
    {
    }
    else
    {
    }
    est une façon plus compacte d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $test=$mail->Send()
    if (!$test)
    {
    }
    else
    {
    }
    Donc comme l'a dit Sabotage, il faut retirer le 1er $mail->send()
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

Discussions similaires

  1. [Mail] Envoi en double exemplaire
    Par manu_71 dans le forum Langage
    Réponses: 5
    Dernier message: 01/07/2009, 16h44
  2. [Mail] envoi d'email double
    Par mmz dans le forum Langage
    Réponses: 2
    Dernier message: 22/06/2007, 23h56
  3. [Mail] phpmailer et envoi en double
    Par sam01 dans le forum Langage
    Réponses: 1
    Dernier message: 19/11/2006, 22h45
  4. Réponses: 9
    Dernier message: 22/06/2006, 10h11
  5. [Mail] Double saut ligne dans envois de mails
    Par Oberown dans le forum Langage
    Réponses: 1
    Dernier message: 30/03/2006, 12h47

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