Posez votre question Signaler

Phpmailer [Résolu]

little_programmeur 49Messages postés 28 janvier 2009Date d'inscription 12 mars 2010Dernière intervention - Dernière réponse le 28 mai 2009 à 11:56
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 ^^
Lire la suite 

Phpmailer »

13 réponses
Réponse
+2
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
t'as essayé en ne mettant pas la meme adresse dans le from et dans le to ?
Ajouter un commentaire
Réponse
+0
moins plus
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 ?
Ajouter un commentaire
Réponse
+0
moins plus
c'est vrai que gmail utilise l'authentification. Et dans ton scipt, on ne voit à aucun moment de mot de pass..
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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 ...
Ajouter un commentaire
Réponse
+0
moins plus
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 ?
Nabla's - 26 mai 2009 à 09:29
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 ?
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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");
Ajouter un commentaire
Réponse
+0
moins plus
ce n'est pas la meme fonction, mais:
http://www.php.net/manual/en/function.mail.php

eux, mettent la balise <html><body> puis </body> </html> que tu semble avoir oublié....
Ajouter un commentaire
Réponse
+0
moins plus
C'est bon, j'ai trouvé ou est l'erreur : j'avais oublié de mettre $mail->IsHTML(true);

Merci beaucoup.
Ajouter un commentaire
Réponse
+0
moins plus
ok.
visiblement le probleme est résolu, je le met en résolu
Ajouter un commentaire
Ce document intitulé « phpmailer » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Windows 8 - À quoi s'attendre ?