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
      t'as essayé en ne mettant pas la meme adresse dans le from et dans le to ?
      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
          c'est vrai que gmail utilise l'authentification. Et dans ton scipt, on ne voit à aucun moment de mot de pass..
          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
              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. 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. 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. 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. C'est bon, j'ai trouvé ou est l'erreur : j'avais oublié de mettre $mail->IsHTML(true);

                    Merci beaucoup.
                    0
                    1. Contributeur
                      ok.
                      visiblement le probleme est résolu, je le met en résolu
                      0