faire fonctionner Phpmailer en localhost compliqué ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : faire fonctionner Phpmailer en localhost compliqué ?

Re: faire fonctionner Phpmailer en localhost compliqué ?

par debutant10 » 11 avr. 2013, 20:04

Voici ma ligne 75 :
$mail->  SetFrom =("[email protected]<script type="text/javascript">
et voici mon code complet qui est placé dans le répertoire phpmailer :

mon but est de pouvoir envoyer, je dispose de wamp + BDD avec email, mais je ne sais pas faire ?? merci de votre aide. Vraiment je recherche qq chose de vraiment simple svp

info (je dispose que d'une adresse mail gmail, est du code ci-dessous, manque t-il des choses si oui lesquelles et comment faire pour faire marcher cette mécanique qui m 'a l air compliquer merci les experts de votre aide)
<?php
require_once('phpmailer/class.phpmailer.php');
 
$mail = new PHPMailer();
 
$mail->IsSMTP(); // telling the class to use SMTP
try {
        $mail->Host          = ("smtp.sfr.fr");
        $mail->SMTPAuth      = true;                  // enable SMTP authentication
        $mail->SMTPKeepAlive = true;                  // SMTP connection will not close after each email sent
        $mail->Port          = 5027;                    // set the SMTP port for the GMAIL server
        $mail->Username      = ("smtp%xxx.fr"); // SMTP account username
        $mail->Password      = ("xxx");        // SMTP account password
} catch (phpmailerException $e) {
        echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
        echo $e->getMessage(); //Boring error messages from anything else!
}
$user = "xxx";
$password = "xxx";
$database = "xxxx";
$host = "xxx";
 
$connect = mysql_connect($host, $user, $password) or die(mysql_error());
    mysql_select_db($database);
 
$forcli = $Cookcli;
$result = mysql_query ("select * from client where codecli = '$forcli'");
$row = mysql_fetch_object($result);
 
echo "<FONT SIZE=+3>";
echo "<DIV ALIGN=center><FONT COLOR=\"#0000CC\"><B>$forcli           $row->nom</B></FONT></DIV>";
echo "</FONT>";
echo "<HR SIZE=3 NOSHADE>";
 
$forcli = $Cookcli;
$fornom = $Cooknom;
if ($forcli < 1)
   {echo "<B><FONT SIZE=+1>Votre session est terminée, vous devez vous identifier à nouveau...</FONT></B>";}
 
$fordate = gmdate("Y-m-d");
$nb = 1;
if ($forcli < 1) {$nb = 0;}
 
 $result = mysql_query("select * from bordereau left join dossier on dossier.numdos = bordereau.numdos where  bordereau.numbor = '$numbor' and bordereau.etat = 1
        order by bordereau.numbor, bordereau.numdos ");
 
$nb2 = 0;
if ($result) {$nb2 = mysql_num_rows($result);}
if ($nb2 == 0) {$nb = 0;}
if ($nb > 0)
   {while ($row = mysql_fetch_object($result))
          {
          $si = " numbor = $row->numbor and numdos = $row->numdos ";
          $majbor = mysql_query
                          ("update bordereau set etat = 2 where ".$si);
          $mesbor .= "$forcli $row->typetrans $fornom;$row->numdos;";   
          $mesbor .= "$row->reference;$row->nom;$row->adresse1;$row->adresse2;";
          $mesbor .= "$row->codepostal;$row->ville;$row->codepays;";
          $mesbor .= "$row->nbcolis;$row->poids;$row->volume;$row->metreplancher;";
          $mesbor .= "$row->portdu;$row->cr;$row->crdevise;";
          $mesbor .= "$row->cr2;$row->crdev2;";
          $mesbor .= "$row->vd;$row->vddevise;$row->commentaire;";
          $mesbor .= "$row->express;$row->hayon;$row->teldesti;";
          $mesbor .= "$row->nbpalettes;$row->obspalette;\n";
          }
        ;}
$mesbor = strtoupper($mesbor);
$ligne1 = "<br>";
$ligne2 = "<br>le bordereau numéro <B>$numbor</B> est transmis";
if ($nb > 0) {
        echo "$ligne1 $ligne2";
        try {
 
                $mail->  SetFrom =("[email protected]<script type="text/javascript">
/* <![CDATA[ */
(function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})();
/* ]]> */
</script>");
                $mail->  AddReplyTo =("[email protected]<script type="text/javascript">
/* <![CDATA[ */
(function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})();
/* ]]> */
</script>;");
                $mail->  Subject = ("Bordereau de chargement N $numbor");
                $mail->  message = ("$mesbor");
                $mail->  AddAdress = ('[email protected]<script type="text/javascript">
/* <![CDATA[ */
(function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})();
/* ]]> */
</script>');
                $mail->  AltBody = $mesbor;
                $mail->AddAttachment("BO$numbor.txt");
                $mail->Send();
        } catch (phpmailerException $e) {
                echo $e->errorMessage(); //Pretty error messages from PHPMailer
        } catch (Exception $e) {
                echo $e->getMessage(); //Boring error messages from anything else!
}
}
 
if ($nb >0)
   {echo "<BR><BR><DIV ALIGN=\"center\">
                 <A HREF=\"borimp.php? numbor=$numbor\" TARGET=_blank>Imprimer le bordereau</A>
                 &nbsp;&nbsp;&nbsp;
                 <A HREF=\"bordefinitif.php\" TARGET=_self>Retour</A>
   </DIV>" ;} 
?>


Voici aussi le code 2 que je n 'arrive pas à faire fonctionner...

message d erreur :
Avertissement : require_once (class.phpmailer.php) [ function.require-once ]: failed to open stream: No such file or directory dans C: \ wamp \ www \ mail9-PHPMailer \ test-03_simple.php sur la ligne 7

Fatal error : require_once () [ function.mysql ]: ('.; C: \ php5 \ pear' include_path =) Failed opening required 'class.phpmailer.php »dans C: \ wamp \ www \ mail9-PHPMailer \ test-03_simple. php on line 7
<?php
/*
envoie d'email par authentification smtp avec la lib phpmail
*/

require_once 'class.phpmailer.php'; //le fichier class.phpmailer.php est dans le même répertoire que le script courant

$mail = new PHPMailer();
$mail->IsHTML(true);
$mail->CharSet = "utf-8";
$mail->SMTPDebug = 2;

$body             = "<p> corps du mail.ceci est un texte bidon.............</p>";
 
$mail->IsSMTP();
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
$mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
$mail->Port       = 465;                   // set the SMTP port
 
$mail->Username   = "[email protected]";  // ton compte gmail
$mail->Password   = "tonMotDePasse";        // ton mot de passe gmail
 
$mail->From       = "[email protected]";//"[email protected]";
$mail->FromName   = "yann";
$mail->Subject    = "Titre de ton message";
//$mail->AltBody    = "This is the body when user views in plain text format"; //Text Body
$mail->WordWrap   = 50; // set word wrap
 
$mail->MsgHTML($body);
 
$mail->AddReplyTo("[email protected]","Toto titi");
 

 
$mail->AddAddress("[email protected]","miss"); //!!!!adresse mail du destinataire
 
$mail->IsHTML(true); // send as HTML
 
if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
} else {
  echo "Message envoyé avec succès";
}
 





?>

Re: faire fonctionner Phpmailer en localhost compliqué ?

par yann18 » 10 avr. 2013, 01:22

ton script prends assez de temps pour s'exécuter.
ajoute ceci en début du script avant require_once:
set_time_limit (60);

Re: faire fonctionner Phpmailer en localhost compliqué ?

par yann18 » 10 avr. 2013, 01:19

certainement il y a des fichiers de phpmailer qui manquent. je te mets sur github le lien où tu trouveras l'exemple du script d’envoi d'e-mail et toute la librairie au complet.
Hum Time out tu traduit par fichier manquant O_o

Il a des liens vers la doc depuis longtemps (cf page 1 :? )


@+
ah oui j'ai pas lu en intégralité son message d'erreur.

Re: faire fonctionner Phpmailer en localhost compliqué ?

par moogli » 10 avr. 2013, 00:37

certainement il y a des fichiers de phpmailer qui manquent. je te mets sur github le lien où tu trouveras l'exemple du script d’envoi d'e-mail et toute la librairie au complet.
Hum Time out tu traduit par fichier manquant O_o

Il a des liens vers la doc depuis longtemps (cf page 1 :? )


@+

Re: faire fonctionner Phpmailer en localhost compliqué ?

par yann18 » 10 avr. 2013, 00:27

certainement il y a des fichiers de phpmailer qui manquent. je te mets sur github le lien où tu trouveras l'exemple du script d’envoi d'e-mail et toute la librairie au complet.

Re: faire fonctionner Phpmailer en localhost compliqué ?

par debutant10 » 08 avr. 2013, 23:01

Bonjour, sa ne marche pas ??

Voici le message d erreur :

Fatal error : temps d'exécution maximum de 60 secondes dépassé dans C: \ wamp \ www \ mail9-phpmailer \ \ phpmailer class.phpmailer.php sur la ligne 13


ne comprends pas ? j ai pris exactement la même chose ??
merci de votre aide

Re: faire fonctionner Phpmailer en localhost compliqué ?

par yann18 » 07 avr. 2013, 21:43

tu devrais essayer d'envoyer juste un e-mail avec phpmailer.une fois que t'as réussi d'envoyer un email, tu pourras alors intégrer le script d’envoi d'e-mail avec le reste de ton code. je te passe un script qui fonctionne avec le serveur smtp de gmail à condition d'en posséder un compte.

<?php
/*
envoie d'email par authentification smtp avec la lib phpmail
*/

require_once 'class.phpmailer.php'; //le fichier class.phpmailer.php est dans le même répertoire que le script courant

$mail = new PHPMailer();
$mail->IsHTML(true);
$mail->CharSet = "utf-8";
$mail->SMTPDebug = 2;

$body             = "<p> corps du mail.ceci est un texte bidon.............</p>";
 
$mail->IsSMTP();
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
$mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
$mail->Port       = 465;                   // set the SMTP port
 
$mail->Username   = "[email protected]";  // ton compte gmail
$mail->Password   = "tonMotDePasse";        // ton mot de passe gmail
 
$mail->From       = "[email protected]";
$mail->FromName   = "yann";
$mail->Subject    = "Titre de ton message";
//$mail->AltBody    = "This is the body when user views in plain text format"; //Text Body
$mail->WordWrap   = 50; // set word wrap
 
$mail->MsgHTML($body);
 
$mail->AddReplyTo("[email protected]","Toto titi");
 

 
$mail->AddAddress("[email protected]","miss"); //!!!!adresse mail du destinataire
 
$mail->IsHTML(true); // send as HTML
 
if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
} else {
  echo "Message envoyé avec succès";
}
 





?>

il est possible d'utiliser un autre serveur de messagerie(exemple:yahoo, live, sfr...) autre que gmail mais à condition d'indiquer le port et le serveur smtp.

Re: faire fonctionner Phpmailer en localhost compliqué ?

par moogli » 07 avr. 2013, 20:20

quel est le code ?


pour le smtp : http://support.google.com/mail/answer/78775?hl=fr


@+

Re: faire fonctionner Phpmailer en localhost compliqué ?

par debutant10 » 07 avr. 2013, 19:44

Bonjour Moogli
Parse error c'est une erreur de syntaxe regarde bien les lignes 73 a 75 tu va sûrement trouver.
--> à cette ligne j ai juste mis mon adresse email ****@gmail.com

Pour le serveur smtp indique celui de ton fai ou de gmail (pour peu que tu ai un compte) ça devrait faire l'affaire. ---> j'ai une adresse mail ****@gmail.com c tout que dois je faire ?

Quand a l'url --> plus de message d'erreur pour l url

Re: faire fonctionner Phpmailer en localhost compliqué ?f

par moogli » 07 avr. 2013, 16:06

Parse error c'est une erreur de syntaxe regarde bien les lignes 73 a 75 tu va sûrement trouver.
Aide toi d'un IDE qui sera sûrement a même de te l'indiquer (comme éclipse, netbeans, zend studios etc).

Pour le serveur smtp indique celui de ton fai ou de gmail (pour peu que tu ai un compte) ça devrait faire l'affaire.

Quand a l'url c'est pas compliqué est le minimum, si tu ne sais pas t'y retrouver je te suggère le tuto zéro de phpdebutant.org qui indique les bases.
D'ailleurs tu l'a déjà vu que tu vois le message d'erreur.

@+

Re: faire fonctionner Phpmailer en localhost compliqué ?

par debutant10 » 06 avr. 2013, 23:17

voici un nouveau message d erreur maintenant
Parse error: parse error in C:\wamp\www\mail9-phpmailer\test-01.php on line 75


Dans mon cas quelle URL dois-je mettre ?

J'ai pas de SMTP je suis en localhost , j ai rien qui s 'affiche....

Est-il possible d avoir un bouton pour créer un envoi merci

Re: faire fonctionner Phpmailer en localhost compliqué ?

par moogli » 06 avr. 2013, 22:53

Mettre la bonne url dans le navigateur ;)

Ce n'est pas une erreur php.

Re: faire fonctionner Phpmailer en localhost compliqué ?

par debutant10 » 06 avr. 2013, 22:50

Merci moogli c grâce à toi, mais voici l'erreur :

Not Found

The requested URL /mail9-phpmailer/test.php was not found on this server.

Que faut-il faire svp ?

Re: faire fonctionner Phpmailer en localhost compliqué ?

par moogli » 06 avr. 2013, 22:45

Voilà c'est bien ça ;)

C'est quoi ce Javascript au milieu des adresses mails ?

Qu'elle est l'erreur ?


Tu devrais utiliser la concaténation plutôt que les variables directement dans les chaînes de caractères c'est sources d'emmerde ;)


@+

Re: faire fonctionner Phpmailer en localhost compliqué ?

par debutant10 » 06 avr. 2013, 22:03

Merci Moogli, je comprends mieux :

Mon souhait, depuis mon appli php localhost envoyer à des destinataires des fichiers excel suite à requête de ma bdd phpmyadmin.

Mon point bloquant se situe actuellement au niveau du server SMTP

faut-il s incrire chez free ? c gratuit comment faire faut-il absolument avoir un server smtp si oui comment faire dans mon cas svp ? car je souhairais rester en loacalhost svp

VOICI LE MESSAGE D ERREUR qui peu me corriger svp ?

<?php
require_once('phpmailer/class.phpmailer.php');
 
$mail = new PHPMailer();
  
$mail->IsSMTP(); // telling the class to use SMTP
try {
        $mail->Host          = ("smtp.xxx.fr");
        $mail->SMTPAuth      = true;                  // enable SMTP authentication
        $mail->SMTPKeepAlive = true;                  // SMTP connection will not close after each email sent
        $mail->Port          = 5027;                    // set the SMTP port for the GMAIL server
        $mail->Username      = ("smtp%xxx.fr"); // SMTP account username
        $mail->Password      = ("xxx");        // SMTP account password
} catch (phpmailerException $e) {
        echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
        echo $e->getMessage(); //Boring error messages from anything else!
}
$user = "xxx";
$password = "xxx";
$database = "xxxx";
$host = "xxx";
 
$connect = mysql_connect($host, $user, $password) or die(mysql_error());
    mysql_select_db($database);
        
$forcli = $Cookcli;
$result = mysql_query ("select * from client where codecli = '$forcli'");
$row = mysql_fetch_object($result);
 
echo "<FONT SIZE=+3>";
echo "<DIV ALIGN=center><FONT COLOR=\"#0000CC\"><B>$forcli           $row->nom</B></FONT></DIV>";
echo "</FONT>";
echo "<HR SIZE=3 NOSHADE>";
 
$forcli = $Cookcli;
$fornom = $Cooknom;
if ($forcli < 1)
   {echo "<B><FONT SIZE=+1>Votre session est terminée, vous devez vous identifier à nouveau...</FONT></B>";}
 
$fordate = gmdate("Y-m-d");
$nb = 1;
if ($forcli < 1) {$nb = 0;}
 
 $result = mysql_query("select * from bordereau left join dossier on dossier.numdos = bordereau.numdos where  bordereau.numbor = '$numbor' and bordereau.etat = 1
        order by bordereau.numbor, bordereau.numdos ");
 
$nb2 = 0;
if ($result) {$nb2 = mysql_num_rows($result);}
if ($nb2 == 0) {$nb = 0;}
if ($nb > 0)
   {while ($row = mysql_fetch_object($result))
          {
          $si = " numbor = $row->numbor and numdos = $row->numdos ";
          $majbor = mysql_query
                          ("update bordereau set etat = 2 where ".$si);
          $mesbor .= "$forcli $row->typetrans $fornom;$row->numdos;";   
          $mesbor .= "$row->reference;$row->nom;$row->adresse1;$row->adresse2;";
          $mesbor .= "$row->codepostal;$row->ville;$row->codepays;";
          $mesbor .= "$row->nbcolis;$row->poids;$row->volume;$row->metreplancher;";
          $mesbor .= "$row->portdu;$row->cr;$row->crdevise;";
          $mesbor .= "$row->cr2;$row->crdev2;";
          $mesbor .= "$row->vd;$row->vddevise;$row->commentaire;";
          $mesbor .= "$row->express;$row->hayon;$row->teldesti;";
          $mesbor .= "$row->nbpalettes;$row->obspalette;\n";
          }
        ;}
$mesbor = strtoupper($mesbor);
$ligne1 = "<br>";
$ligne2 = "<br>le bordereau numéro <B>$numbor</B> est transmis";
if ($nb > 0) {
        echo "$ligne1 $ligne2";
        try {
                
                $mail->  SetFrom =("[email protected]<script type="text/javascript">
/* <![CDATA[ */
(function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})();
/* ]]> */
</script>");
                $mail->  AddReplyTo =("[email protected]<script type="text/javascript">
/* <![CDATA[ */
(function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})();
/* ]]> */
</script>;");
                $mail->  Subject = ("Bordereau de chargement N $numbor");
                $mail->  message = ("$mesbor");
                $mail->  AddAdress = ('[email protected]<script type="text/javascript">
/* <![CDATA[ */
(function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})();
/* ]]> */
</script>');
                $mail->  AltBody = $mesbor;
                $mail->AddAttachment("BO$numbor.txt");
                $mail->Send();
        } catch (phpmailerException $e) {
                echo $e->errorMessage(); //Pretty error messages from PHPMailer
        } catch (Exception $e) {
                echo $e->getMessage(); //Boring error messages from anything else!
}
}
 
if ($nb >0)
   {echo "<BR><BR><DIV ALIGN=\"center\">
                 <A HREF=\"borimp.php? numbor=$numbor\" TARGET=_blank>Imprimer le bordereau</A>
                 &nbsp;&nbsp;&nbsp;
                 <A HREF=\"bordefinitif.php\" TARGET=_self>Retour</A>
   </DIV>" ;} 
?>