Phpmailer

Résolu
Bonjour :p
J'essaye d'envoyer un message avec phpmailer. J'ai cependant un message d'erreur :
Code : Console

The following From address failed: tbtous@gmail.com

Et voila mon code entier :

<?php
include("nouv/dtd.html");
echo "Envoyer un mail avec phpmailer";
include("nouv/menu.html");
?>
<div class="corps">
test
<?php

require "phpmailer/class.phpmailer.php";
echo "Envoyer un mail avec phpmailer1<br />";
$mail = new PHPmailer();
echo "Envoyer un mail avec phpmailer2<br />";
$mail->IsSMTP();
echo "Envoyer un mail avec phpmailer3<br />";
$mail->Host='smtp.gmail.com';
echo "Envoyer un mail avec phpmailer4<br />";
$mail->From='tbtous@gmail.com';
echo "Envoyer un mail avec phpmailer5<br />";
$mail->AddAddress('tbtous@gmail.com');
echo "Envoyer un mail avec phpmailer6<br />";
$mail->AddReplyTo('tbtous@gmail.com');
echo "Envoyer un mail avec phpmailer7<br />";
$mail->Subject='Exemple trouvé sur DVP';
echo "Envoyer un mail avec phpmailer8<br />";
$mail->SetLanguage("en", "phpmailer/language/");
$mail->Body='Voici un exemple d\'e-mail au format Texte';
echo "Envoyer un mail avec phpmailer9<br />";
if(!$mail->Send()){ //Teste le return code de la fonction
echo $mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7)
}
else{
echo 'Mail envoyé avec succès';
}
$mail->SmtpClose();
unset($mail);
echo "Envoyer un mail avec phpmailer10<br />";

?>
</div>
</body>
</html>


Comment réparer cette erreur ?

Merci d'avance ^^
Configuration: Windows XP
Firefox 1.0.7

12 réponses

  1. Je vois ce que tu veux dire. Merci. J'ai cependant une dernière question : comment faire pour que le message soit envoyé en format html ? Lorsque je tape ceci :
    $msg = '<h1>Demande de partition</h1><p><strong>Adresse mail de l\'expéditeur : </strong>';
    $msg .= stripslashes(htmlspecialchars($_POST['mail']));
    $msg .= '<br /><strong>Titre de la partition : </strong>';
    $msg .= stripslashes(htmlspecialchars($_POST['titre']));
    $msg .= '<br /><strong>Compositeur : </strong>';
    $msg .= stripslashes(htmlspecialchars($_POST['compositeur']));
    $msg .= '<br /><strong>Instruments : </strong>';
    $msg .= implode(', ', $_POST["instrument"]);
    $msg .= '<br /><strong>Autres instruments : </strong>';
    $msg .= stripslashes(htmlspecialchars($_POST['autre']));
    $msg .= '<br /><strong>Notes : </strong>';
    $msg .= nl2br(stripslashes(htmlspecialchars($_POST['notes'])));
    require "phpmailer/class.phpmailer.php";
    $mail = new PHPMailer();
    $mail->IsSMTP(); // telling the class to use SMTP
    $mail->SMTPAuth = true; // turn on SMTP authentication
    $mail->Host = "smtp.laposte.net"; // SMTP server
    $mail->Username = "sites.web";
    $mail->Password = "gfd";
    $mail->From = "sites.web@laposte.net";
    $mail->AddAddress("tbtous@gmail.com");
    $mail->Subject = "First PHPMailer Message";
    $mail->Body = $msg;

    $mail->AddAttachment('uploads/'.$_FILES['monfichier']['name'].'');
    $mail->WordWrap = 50;

    if(!$mail->Send())
    {
    echo 'Le message n\'a pas pu être envoyé';
    echo 'Erreur Mailer : ' . $mail->ErrorInfo;
    }
    else
    {
    echo 'Félicitation ! Le message à bien été envoyé. Vous recevrez la partition finale dans une semaine à un mois.';
    }

    J'ai le message suivant qui apparait lorsque j'ouvre mon message :
    <h1>Demande de partition</h1><p><strong>Adresse
    mail de l'expéditeur : </strong>d<br
    /><strong>Titre de la partition : </strong>d<br
    /><strong>Compositeur : </strong>d<br
    /><strong>Instruments :
    </strong>guitareseche_accords<br /><strong>Autres
    instruments : </strong>h<br /><strong>Notes :
    </strong>Si vous voulez indiquer quelque chose de
    spécial, c'est ici !

    Au lieu d'avoir écrit en gros...

    Comment faire ?

    Merci d'avance.
    2
    1. Contributeur
      ok.
      visiblement le probleme est résolu, je le met en résolu
      0
      1. C'est bon, j'ai trouvé ou est l'erreur : j'avais oublié de mettre $mail->IsHTML(true);

        Merci beaucoup.
        0
        1. Contributeur
          ce que je voulais dire, c'est que si tu veux les réponses sur ton adrese gmail, tu peux faire ca:
          $mail->Host = "smtp.laposte.net"; // SMTP server
          $mail->Username = "sites.web";
          $mail->Password = "fdsg";
          $mail->From = "tbtous@gmail.com";
          $mail->AddAddress("tbtous@gmail.com");
          0
          1. Oui, c'est la vrai adresse. Et mon herbergeur me propose un SMTP. Je pourrais en effet l'utiliser.

            Mais je n'arrive pas à utiliser la mise en page html : Y a t'il un pb dans mon code ?

            require "phpmailer/class.phpmailer.php";
            $mail = new PHPMailer();
            $mail->IsSMTP(); // telling the class to use SMTP
            $mail->SMTPAuth = true; // turn on SMTP authentication
            $mail->Host = "smtp.laposte.net"; // SMTP server
            $mail->Username = "sites.web";
            $mail->Password = "fdsg";
            $mail->From = "sites.web@laposte.net";
            $mail->AddAddress("sites.web@laposte.net");
            $mail->Subject = "First PHPMailer Message";
            //$mail->Body = $msg;
            $mail->Body='<html><body><center><font size=8>Le fichier est attaché ci-dessus</font><br></body></html>';
            $mail->AddAttachment('uploads/'.$_FILES['monfichier']['name'].'');
            $mail->WordWrap = 50;

            if(!$mail->Send())
            {
            echo 'Le message n\'a pas pu être envoyé';
            echo 'Erreur Mailer : ' . $mail->ErrorInfo;
            }
            else
            {
            echo 'Félicitation ! Le message à bien été envoyé. Vous recevrez la partition finale dans une semaine à un mois.';
            }

            Merci d'avance
            0
            1. C'est bon, ça fonctionne en partie : j'arrive à faire ceci avec un serveur laposte... mais pas avec Gmail.

              Pour répondre à ta question :
              1) Je suis hébergé sur olympe-network, avec un abonnement gratuit.
              2)je ne m'héberge pas moi même
              3)Je ne peux pas faire exécuter, car je ne sais pas comment accéder à cette commande via O-N avec olympe network.

              Comment faire pour pouvoir utiliser une adresse Gmail ?
              0
              1. Contributeur
                la commande était si tu étais hébergé toi meme, j'ai pas précisé...

                ton hébergeur ne te propose pas son propre serveur smtp ? car en smtp, c'est toi qui choisis l'adresses d'expéditeur à afficher....

                es ce que l'adresse mail dans les exemples est ta vrai adresse ?
                0
            2. Contributeur
              il est fréquent que l'accès au smtp qui ne soient pas ceux de ton FAI soit bloqué.
              1- es ce que tu héberges le site chez toi? ou chez qui héberges tu le site (et quelle formule d'abonnement)
              2- si tu héberges toi meme, qui est ton FAI?
              3- vas dans executer, tapes cmd , puis, dans la fenetre noire, tapes telnet smtp.gmail.com 25 , puis la touche entrée , et regardes si le serveur te dis helle ou si la connexion est refusée ...
              0
              1. J'ai mis une autentification, mais ca ne fonctionne toujours pas :
                <?php
                include("nouv/dtd.html");
                echo "Envoyer un mail avec phpmailer";
                include("nouv/menu.html");
                ?>
                <div class="corps">
                test
                <?php

                require "phpmailer/class.phpmailer.php";
                echo "Envoyer un mail avec phpmailer1<br />";
                $mail = new PHPmailer();
                echo "Envoyer un mail avec phpmailer2<br />";
                $mail->IsSMTP();
                echo "Envoyer un mail avec phpmailer3<br />";
                $mail->Host='smtp.gmail.com';
                echo "Envoyer un mail avec phpmailer4<br />";
                $mail->Username = "tbtous";
                $mail->Password = "motdepasse";
                $mail->From='tbtous@gmail.com';
                echo "Envoyer un mail avec phpmailer5<br />";
                $mail->AddAddress('tbtous@gmail.com');
                echo "Envoyer un mail avec phpmailer6<br />";
                $mail->AddReplyTo('tbtous@gmail.com');
                echo "Envoyer un mail avec phpmailer7<br />";
                $mail->Subject='Exemple trouvé sur DVP';
                echo "Envoyer un mail avec phpmailer8<br />";
                $mail->SetLanguage("en", "phpmailer/language/");
                $mail->Body='Voici un exemple d\'e-mail au format Texte';
                echo "Envoyer un mail avec phpmailer9<br />";
                if(!$mail->Send()){ //Teste le return code de la fonction
                echo $mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7)
                }
                else{
                echo 'Mail envoyé avec succès';
                }
                $mail->SmtpClose();
                unset($mail);
                echo "Envoyer un mail avec phpmailer10<br />";

                ?>
                </div>
                </body>
                </html>


                Voyez vous une erreur ?

                --EDIT--
                C'est bon, ça fonctionne en partie : j'arrive à faire ceci avec un serveur laposte... mais pas avec Gmail.

                Comment faire pour pouvoir utiliser une adresse Gmail ?

                Merci d'avance
                0
                1. Contributeur
                  c'est vrai que gmail utilise l'authentification. Et dans ton scipt, on ne voit à aucun moment de mot de pass..
                  0
                  1. Oui, mais ça ne fonctionne pas. Toujours la même erreur.

                    D'autres idées ?

                    Est-ce que ça peux venir de Gmail qui n'accèpte pas d'envoyer un message depuis un serveur distant ?
                    0
                    1. Contributeur
                      t'as essayé en ne mettant pas la meme adresse dans le from et dans le to ?
                      0