Page 1 sur 2

faire fonctionner Phpmailer en localhost compliqué ?

Posté : 01 avr. 2013, 20:20
par debutant10
Comme vous le saviez je suis débutant mais connais pas mal de chose, mais je coince dans l'installation de phpmailer en locale.

J'ai essayé de faire simple mais rien ne fonctionne j ai essayé les tuto rien à faire...
qq un peut-il m'aider svp à t-il deja fait cela ? peut-il m envoyer un exemple avec BDD svp ?

Re: faire fonctionner Phpmailer en localhost compliqué ?

Posté : 01 avr. 2013, 21:10
par yann18
Dans le cas d'un envoie par smtp, avec PhPMailer il n y a rien à installer et aucune configuration n'est nécessaire pour pouvoir envoyer un mail. T'as juste à télécharger le fichier PHPMailer puis l'inclure dans ta page.
Sans ton code source je ne saurai te dire pourquoi à ton niveau ça ne marche pas.
Toutefois, je tu peux t'inspire de l'exemple ci-dessous:
phpmailer

Re: faire fonctionner Phpmailer en localhost compliqué ?

Posté : 02 avr. 2013, 00:12
par debutant10
Je recherche un exemple avec bdd à tester en localhost svp pour bien comprendre j aime le php, et j aime comprendre avec un cas d'école vraiement basique svp

lorsque je fais des test sa fonctionne pas, comment faire pour
des le debut
l etape : commencer par les instructions suivantes :
<?php
   require('class.phpmailer.php');
?>
voici l'erreur
Fatal error: Call to undefined function verif() in C:\wamp\www\mail3\PhpHtmlMail\index.php on line 42
ect...

j ai besoin qu on m explique dans le detail s il faut creer une bdd ou bien quelle est le fichier à placer etc...

merci pour le detail svp car on y comprends rien...

qq un peut-il me mettre dans la voie donner un exemple vraiement basique que je pose dans ma racinne www puis sa marche

Re: faire fonctionner Phpmailer en localhost compliqué ?

Posté : 04 avr. 2013, 22:58
par debutant10
VOICI Le Message d'erreur qui peut m aider ?


Attention : mail () [ function.mail ]: Échec de connexion au serveur de courrier à "localhost" port 25, vérifier votre "SMTP" et "smtp_port" mise en ini_set php.ini ou l'utilisation () dans C: \ wamp \ www \ TP15-MAIL \ mail \ ex1.php sur la ligne 8
Echec de l'envoi du mail.


<?php
$sujet = 'Sujet de l\'email';
$message = "Bonjour,<br />
<strong>Ceci est un message html envoyé grâce à php.</strong><br />
merci :)";
$destinataire = '[email protected]';
$headers = "From: \"expediteur moi\"<[email protected]>\n";
$headers .= "Reply-To: [email protected]\n";
$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"";
if(mail($destinataire,$sujet,$message,$headers))
{
        echo "L'email a bien été envoyé.";
}
else
{
        echo "Une erreur c'est produite lors de l'envois de l'email.";
}

Re: faire fonctionner Phpmailer en localhost compliqué ?

Posté : 04 avr. 2013, 23:31
par moogli
salut,


un serveur SMTP doit être configuré sur ta machine pour que php puisse l'utiliser.


quand au problème d'origine sans le code on ne peu pas t'aider.

ce message
Fatal error: Call to undefined function verif() in C:\wamp\www\mail3\PhpHtmlMail\index.php on line 42

indique que tu tente d'utiliser une fonction (verif() qui n'existe pas.

phpmailer étant utilisable que via une classe je pense que l'erreur ne viens pas la.

doc + exemple https://github.com/Synchro/PHPMailer

accéder à une base de donnée est assez simple avec php (surtout si tu reste sur les classiques), l'envoie de mail avec phpmailer n'est pas beaucoup plus compliqué.
as tu tenté l'envoie de mail seul ?
as tu réussi à récupérer des infos d'une base de données ?

Pour finir, un bonjour ou merci sont plus qu'apprécié, et un minimum lorsque l'on demande de l'aide !


@+

Re: faire fonctionner Phpmailer en localhost compliqué ?

Posté : 05 avr. 2013, 21:36
par debutant10
Merci pour votre éclairage,
Je suis en localhost, je souhaiterais evoiyer des mails

mais avec l 'exemple simple : où dois-je placer le code svp ?
1-/ j'ai telecharger le fichier php mailer mais que dois-je faire avec les 2 codes ci-dessous
1er code
? < php 
besoin  »class.phpmailer.php» ;

$ Mail  =  nouvelle  PHPMailer ;

$ Mail -> IsSMTP ();                                       / / Définit mailer SMTP à utiliser 
$ mail -> Host  =  'smtp1.example.com; smtp2.example.com' ;   / / Spécifier le serveur principal et de sauvegarde 
$ mail -> smtpauth  =  true ;                                / / Activer l'authentification SMTP 
$ mail -> Nom d'utilisateur  =  'jswan' ;                             / / nom d'utilisateur SMTP 
$ mail -> Mot de passe  =  'secret' ;                            / / Mot de passe SMTP 
$ mail -> SMTPSecure  =  'tls' ;                             / / Activer le cryptage, 'ssl 'également accepté

$ Mail -> De  =  '[email protected]' ; 
$ mail -> FromName  =  "Mailer" ; 
$ mail -> AddAddress ( '[email protected]' ,  'Josh Adams );   / / Ajouter un destinataire 
$ messagerie -> AddAddress ( '[email protected]' );                / / Nom est
 



$ Mail -> WordWrap  =  50 ;                                  retour à la ligne / / Set à 50 caractères 
$ mail -> AddAttachment ( '/ var / tmp / fichier.tar.gz' );          / / Ajout de pièces jointes 
de courrier $ -> AddAttachment ( '/ tmp / image.jpg ' ,  'new.jpg' );     / / Optionnel nom 
$ mail -> isHtml ( vrai );                                   format d'email / / Set au format HTML

$ Mail -> Sujet  =  "Voici le sujet ' ; 
$ mail -> Body     =  'Ceci est le message HTML <b> corps gras </ b>!' ; 
$ mail -> AltBody  =  'Ceci est l'organe texte en clair pour les clients de messagerie non-HTML ' ;

si ( ! $ mail -> Envoyer ())  { 
   echo  "message n'a pas pu être envoyé. ' ; 
   echo  'Erreur Mailer: «  .  $ mail -> ErreurInfo ; 
   sortie ; 
}

echo  'Le message a été envoyé' ;
2nd code :
/ / Pour charger la version française 
$ mail -> SetLanguage ( 'fr' ,  '/ option / path / to / langue / directory /' );

Re: faire fonctionner Phpmailer en localhost compliqué ?

Posté : 05 avr. 2013, 23:55
par moogli
en clair t'as rien pigé à la doc de phpmailer ?


as tu testé le code indiqué ? (sans traduction du code ;) )

@+

Re: faire fonctionner Phpmailer en localhost compliqué ?

Posté : 06 avr. 2013, 14:10
par debutant10
En clair je n'ai pas bien compris l'installation de php mailer avec BDD, pour tant je sais faire des installation.

dans le dossier que faut-il faire ?

créer une BDD ? à savoir je suis en localhost

Pourriez-svp me décrire les étapes à faire sincerement j'ai besoin de comprendre l'astuce svp

Merci Moogli pour votre aide précieuse.

Re: faire fonctionner Phpmailer en localhost compliqué ?

Posté : 06 avr. 2013, 14:38
par moogli
Il n'y a pas d'installation de phpmailer c'est un script il suffit d'avoir les fichiers et de l'utiliser.

L'exemple indique a quoi sert chaque méthode de la classe.

Quand l'utilisation d'un base de donnée c'est traité sur la plus part des site proposant des tutos sur php.
Par exemple phpdebutant.org ou lephpfacile.com.

La seule chose importante dans ton c'est d'indiquer a phpmailer le serveur smtp que tu souhaite utiliser (les méthodes le faire sont indiquées dans l'exemple et pense aux nom d'utilisateur et mot de passe).
@+

Re: faire fonctionner Phpmailer en localhost compliqué ?

Posté : 06 avr. 2013, 22:03
par debutant10
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>" ;} 
?>

Re: faire fonctionner Phpmailer en localhost compliqué ?

Posté : 06 avr. 2013, 22:45
par moogli
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é ?

Posté : 06 avr. 2013, 22:50
par debutant10
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é ?

Posté : 06 avr. 2013, 22:53
par moogli
Mettre la bonne url dans le navigateur ;)

Ce n'est pas une erreur php.

Re: faire fonctionner Phpmailer en localhost compliqué ?

Posté : 06 avr. 2013, 23:17
par debutant10
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é ?f

Posté : 07 avr. 2013, 16:06
par moogli
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.

@+