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] class phpmailer fct send() Cherchez l'erreur !


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club Avatar de cUs3Mp
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 40
    Points : 28
    Points
    28
    Par défaut [Mail] class phpmailer fct send() Cherchez l'erreur !
    Bonjour

    je parcourais les sources de mon site cherchant a comprendre pourquoi les mails ne partaient pas et en trouvant cette fonction dans la class j'ai vu un truc choquant mais je ne suis pas sur, si vous aussi le return true vous perturbe donnez votre avis.

    je crois que méme si la fonction s est mal déroulée elle retournera true toujours !

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
        function Send() {
            $header = "";
            $body = "";
     
            if((count($this->to) + count($this->cc) + count($this->bcc)) < 1)
            {
                $this->SetError($this->Lang("provide_address"));
                return false;
            }
     
            // Set whether the message is multipart/alternative
            if(!empty($this->AltBody))
                $this->ContentType = "multipart/alternative";
     
            $this->SetMessageType();
            $header .= $this->CreateHeader();
            $body = $this->CreateBody();
     
            if($body == "") { return false; }
     
            // Choose the mailer
            if($this->Mailer == "sendmail")
            {
              if(!$this->SendmailSend($header, $body))
                  return false;
            }
            elseif($this->Mailer == "mail")
            {
              if(!$this->MailSend($header, $body))
                  return false;
            }
            elseif($this->Mailer == "smtp")
            {
              if(!$this->SmtpSend($header, $body))
                  return false;
            }
            else
            {
                $this->SetError($this->Mailer . $this->Lang("mailer_not_supported"));
                return false;
            }
     
            return true;
        }

  2. #2
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    c'est juste une fonction hyper degeu mais non, le return true me choque pas.


    PS : si je dis qu'elle est degeu c'est que je me souviens mon premier cours de C++ :
    Ce n'est pas toujours possible mais dans une fonction, on essaye de ne mettre qu'un seul return
    Et ici, y'a vachement moyen ! Les valeurs se perdent...

  3. #3
    Nouveau membre du Club Avatar de cUs3Mp
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    je déclar sent_mail a true en debut de ma classe

    la classe c est class.phpmailer.php

    ca me semble mieux comme ca il retourne false si erreur sinon true

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
        function Send() {
            $header = "";
            $body = "";
     
            if((count($this->to) + count($this->cc) + count($this->bcc)) < 1)
            {
                $this->SetError($this->Lang("provide_address"));
                sent_mail = false;
            }
     
            // Set whether the message is multipart/alternative
            if(!empty($this->AltBody))
                $this->ContentType = "multipart/alternative";
     
            $this->SetMessageType();
            $header .= $this->CreateHeader();
            $body = $this->CreateBody();
     
            if($body == "") { sent_mail = false; }
     
            // Choose the mailer
            if($this->Mailer == "sendmail")
            {
              if(!$this->SendmailSend($header, $body))
                  sent_mail = false;
            }
            elseif($this->Mailer == "mail")
            {
              if(!$this->MailSend($header, $body))
                  sent_mail =  false;
            }
            elseif($this->Mailer == "smtp")
            {
              if(!$this->SmtpSend($header, $body))
                  sent_mail =  false;
            }
            else
            {
                $this->SetError($this->Mailer . $this->Lang("mailer_not_supported"));
                sent_mail =  false;
            }
     
            return sent_mail ;
     
     }

  4. #4
    Nouveau membre du Club Avatar de cUs3Mp
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    j'ai oublié les $ devant tout les variables sent_mail

    m'engueulez pas svp j'ai la téte en l air today
    :-p

Discussions similaires

  1. Envoi mail avec la class phpmailer
    Par Pifon dans le forum Langage
    Réponses: 13
    Dernier message: 14/08/2014, 17h46
  2. Réponses: 2
    Dernier message: 04/08/2009, 09h55
  3. Erreur envoi mail avec phpmailer (fichier joint)
    Par rhadien dans le forum Langage
    Réponses: 1
    Dernier message: 02/07/2008, 10h23

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