pble mail() SMTP avec easyphp sous windows.

pble mail() SMTP avec easyphp sous windows. - PHP - Programmation

Marsh Posté le 12-08-2015 à 21:43:49    

Bonjour,  
 
J ai easyphp 14.1 . je veux utiliser en local la fonction email().  Mais ca ne fonctionne pas.  
 
Apres recherche sur le web, j ai vu que d autres avaient eu meme pble (depuis 2006 !!).  
 
J ai donc comme les reponses l indiquaient modifier mon fichier php.ini qui est maintenant :  
 
*************************
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = smtp.orange.fr
; http://php.net/smtp-port
smtp_port = 587
 
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = monemail_reel@orange.fr
******************************
 
j ai redemarré  easyphp mais j ai encore un message d erreur qui est  le suivant :  
 
 
***********************
Warning: mail(): SMTP server response: 550 5.1.0 Authentification requise. Authentication Required. OFR304_402 [402] in C:\Program Files\EasyPHP-DevServer-14.1VC9\data\localweb\scripts\Test\email.php on line 13
 
email envoyé  
************************
 
 
Mon script php est des plus simples :  
 
**************
<?php
 
  mail ("a.clt@orange.fr", "test email", "ici le texte du message d'essai" );
 
  echo "<br /> email envoyé";
 
?>
*************
 
 
Quelqu'un peut il m'aider ?  
 
D'avance, merci.

Reply

Marsh Posté le 12-08-2015 à 21:43:49   

Reply

Marsh Posté le 13-08-2015 à 00:28:12    

C'est normal, il faut que tu indiques ton mot de passe pour l'authentification.
 
SMTP = smtp.orange.fr  
smtp_port = 587
auth_username = smtp-username
auth_password = smtp-password
sendmail_from = monemail_reel@orange.fr

Reply

Marsh Posté le 13-08-2015 à 00:42:31    

antac a écrit :

C'est normal, il faut que tu indiques ton mot de passe pour l'authentification.
 
SMTP = smtp.orange.fr  
smtp_port = 587
auth_username = smtp-username
auth_password = smtp-password
sendmail_from = monemail_reel@orange.fr


 
 
merci beaucoup. je vais essayer .  
Bonne nuit.  
 

Reply

Marsh Posté le 22-08-2015 à 12:24:37    

Bonjour,  
 
Ca ne fonctionne tjrs pas !
 
Mais pour quelle raison mettre les coordonnées SMTP de mon serveur orange (ou OVH) puisque je veux travailler en LOCAL.  
 
Que dois je faire pour envoyer des email en LOCAL ?  
 
J'ai Easyphp  Devserver 14.1 avec windows Vista.
 
J'ai mis en ligne mon fichier sur mon site OVH : le programme fonctionne tres bien (envoi des infos d'un formulaire par email), tant sur l'email d'orange que sur l'email d'ovh (sur mon nom de domaine).
 
Mais que faire pour travailler en local ?  
 
Une derniere chose, lorsque je recois les infos dans mon email, les variables sont les unes apres les autres. je veux faire un saut de ligne mais je n y arrive pas.  bien sur j ai fais " /n "  mais en vain.  
 
D'avance, merci.
 
 
(alain)

Reply

Marsh Posté le 24-08-2015 à 16:08:31    

Tu n'as pas de serveur SMTP en local, il faut bien que tu en utilises un pour envoyer un E-Mail :)
 
Pour ton E-Mail, s'il est formaté en HTML, tu dois utiliser la balise "<br>" sinon c'est "\r\n"


Message édité par antac le 26-08-2015 à 14:14:48
Reply

Marsh Posté le 24-08-2015 à 23:24:48    

Bonjour,  
 
1) comment faire pour tester mes script avec envoi d'un email, à partir du web local Apache d'EASYPHP, sans avoir à "sortir" de l'ordi ? Selon ton message, il me faudrait un web local. mais Apache n'a t il pas prévu cet usage  ? Sinon, comment trouver et installer un SMTP EN LOCAL  (pour windows vista) ?  
 
2) j ai modifié mon script pour saut de ligne comme ceci :  
 
$etat_civil="";
 
        if (isSET($_POST['nom']) )
             {$nom=$_POST['nom'];
              $nom=$nom.", ";
              $etat_civil="<br />".$nom;
             }
 
        if (isSET($_POST['prenom']) )
             {$prenom=$_POST['prenom'];
              $prenom=$prenom."/ ";
              $etat_civil=$etat_civil."</n>".$prenom;
             }
 
        mail ($adresse_email, "test", $etat_civil);
 
mais voila ce que j obtiens à partir de mon site perso, dans thunderbird :  
 
        ETAT CIVIL : <br />HALLIDAY, </n>johnny/ adresse/ 75000 PARIS/ telephone(1)
 
donc sur la meme ligne ! alors que je veux un saut de ligne entre nom et prenom par exemple.

Reply

Marsh Posté le 26-08-2015 à 12:38:38    

Bonjour,
 
Concernant ta première question, ça ne changera rien à tes tests. PHP gère l'envoi d'e-mail de façon tout à fait indépendante de ton script. Donc si ça fonctionne en utilisant un smtp externe, ça fonctionnera en local sur un serveur.
Tu n'auras aucune modification à apporter à tes scripts avant de les mettre en ligne.
 
Il serait possible d'installer un serveur smtp en local, mais la problématique principale est de réussir à passer au travers des filtres antispam. Tu t'ajouteras pas mal de complications en faisant ainsi. Si tu veux simplement le faire pour enrichir tes connaissances, je ne peux que te recommander d'installer un serveur linux qui représente la grosse majorité des environnements utilisés.
 
Concernant ta deuxième question, tu envoies l'e-mail en format texte , tu dois donc faire tes retours à la ligne en utilisant "\r\n" . Pour pouvoir utiliser du code HTML il faut envoyer des entêtes d'e-mail adéquates. (tu peux regarder l'exemple #4 sur cette page de la documentation PHP : http://php.net/manual/fr/function.mail.php )

Reply

Marsh Posté le 26-08-2015 à 14:14:28    

+1 avec steph-acnet.
 
Si tu veux te faciliter la vie avec les mails, utilise PHPMailer

Reply

Marsh Posté le 26-08-2015 à 23:21:22    

Merci à vous deux pour votre reponse.  
 
Mais ca ne fonctionne tjrs pas avec /r/n (je l avais vu et je l avais deja essaye mais en vain). Décidément, je n ai pas de chance !
 
J'ai essayé 3 script differents et voila ce que j obtiens :  
 
1) ETAT CIVIL : nom/prenom/adresse/ code ville/ telephone(1) telephone(2) /
 
        if (isSET($_POST['nom']) )
             {$nom=$_POST['nom'];
              $etat_civil=$nom. "/";
             }
 
        if (isSET($_POST['prenom']) )
             {$prenom=$_POST['prenom'];
              $prenom=$prenom."/";
              $etat_civil=$etat_civil.$prenom;
             }
 
 
  2) ETAT CIVIL : nom/nprenom/adresse/ code ville/ telephone(1) telephone(2) /
 
        if (isSET($_POST['nom']) )
             {$nom=$_POST['nom'];
              $etat_civil=$nom. "/n";
             }
 
 
        if (isSET($_POST['prenom']) )
             {$prenom=$_POST['prenom'];
              $prenom=$prenom."/";
              $etat_civil=$etat_civil.$prenom;
             }
 
 
  3) ETAT CIVIL : nom/r/nprenom/adresse/ code ville/ telephone(1) telephone(2) /
 
        if (isSET($_POST['nom']) )
             {$nom=$_POST['nom'];
              $etat_civil=$nom. "/r/n";
             }
 
        if (isSET($_POST['prenom']) )
             {$prenom=$_POST['prenom'];
              $prenom=$prenom."/";
              $etat_civil=$etat_civil.$prenom;
             }
 
Vous remarquerez que dans les cas 2 et 3, les expressions "/n" et "/r/n" sont repris tel quel, sans qu'elles soient interpretées comme une demande de saut de ligne.  
 
je dois rater quelque chose mais je n"arrive pas à voir quoi.  
 
Est il possible que ce soit mon serveur d hebergement (OVH) qui fasse cela ? a priori, non, mais on ne sait jamais.
 
Pour phpmailer, ok mais je voulais apprendre en faisant moi meme. Surtout qu'un saut de ligne, ca devrait pas etre compliqué !  
 
Concernant l'envoi d email en local, j'ai mis dans mon fichier php.ini les refs de mon compte orange. et ca ne fonctionne pas. je pourrai essayer avec les refs de mon coùpte OVH mais c est un peu plus compliqué car en plus du login et mot de passe, il y a une protection SSL ... ou un truc comme ca.  
 
Ce n est pas énormément gênant, ca m'obliqge à modifier le fichier de mes scripts et les envoyer sur mon serveur avec FileZilla. Mais j aimerai quand meme bien pouvoir me servir de l'envoid email en local :-)
   
 
 
 
 
 

Reply

Marsh Posté le 26-08-2015 à 23:27:54    

alain_47 a écrit :


 
 
 
Pour info, ci dessous mon script :  
 
    <!-- ........................................................ -->
    <!-- ...............  content_AFFICHAGE  .......... -->
    <!-- ........................................................ -->
 
    <div id="pp_content_AFFICHAGE">
 
       <div id="w24_1" class="pp_default">
 
            <?php
            echo "<fieldset>";
            echo "<form method='post' action='w24_1test.php'>";
 
            echo "Votre <b>ETAT CIVIL</b> : <br />";
            echo "<blockquote>";
            echo "<input type='text' name='nom' size=30 value='nom' />";
            echo "<input type='text' name='prenom' size=30 value='prenom' />";
            echo "<br />";
            echo "<input type='text' name='adresse' size=70 value='adresse' />&nbsp;";
            echo "<input type='text' name='zip' size=5 value='code' />";
            echo "<input type='text' name='ville' size=30 value='ville' />";
            echo "<br />";
            echo "<input type='text' name='telephone_1' size=10 maxlenght=10 value='telephone(1)' />";
            echo "<input type='text' name='telephone_2' size=10 maxlength=10 value='telephone(2)' />";
            echo "</blockquote>";
            echo "<br />";
 
            echo "<em>Email de destination :</em>";
            echo "<input type='text' name='email_a' size=20 />";
            echo "@<input type='text' name='email_b' size=20 />";
            echo "&nbsp;";
            echo "<input type='submit' value='Envoyer' />";
 
            echo "</form>";
            echo "</fieldset>";
 
// --------- ETAT  CIVIL  --------
 
        $etat_civil="";
 
        if (isSET($_POST['nom']) )
             {$nom=$_POST['nom'];
              $etat_civil=$nom. "/r/n";
             }
 
        if (isSET($_POST['prenom']) )
             {$prenom=$_POST['prenom'];
              $prenom=$prenom."/";
              $etat_civil=$etat_civil.$prenom;
             }
 
        if (isSET($_POST['adresse']) )
             {$adresse=$_POST['adresse'];
              $adresse=$adresse."/ ";
              $etat_civil=$etat_civil.$adresse;
             }
 
        if (isSET($_POST['zip']) )
             {$zip=$_POST['zip'];
              $zip=$zip." ";
              $etat_civil=$etat_civil.$zip;
             }
 
        if (isSET($_POST['ville']) )
             {$ville=$_POST['ville'];
              $ville=$ville."/ ";
              $etat_civil=$etat_civil.$ville;
             }
 
        if (isSET($_POST['telephone_1']) )
             {$telephone_1=$_POST['telephone_1'];
              $telephone_1=$telephone_1." ";
              $etat_civil=$etat_civil.$telephone_1;
             }
 
        if (isSET($_POST['telephone_2']) )
             {$telephone_2=$_POST['telephone_2'];
              $telephone_2=$telephone_2." ";
              $etat_civil=$etat_civil.$telephone_2."/ ";
             }
 
        $message = $message." ETAT CIVIL : ".$etat_civil;
 
        if ( (isSET($_POST["email_a"])) AND (isSET($_POST["email_b"])) )
             {$email_a = $_POST['email_a'];
              $email_b = $_POST['email_b'];
              $adresse_email = $email_a."@".$email_b;
 
              mail ($adresse_email, "*** TEST email  ***", $message);
              }
 
            ?>
 
        </div>
 
    </div>
 
 
   


Reply

Marsh Posté le 26-08-2015 à 23:27:54   

Reply

Marsh Posté le 27-08-2015 à 08:49:52    

"\" <> "/" hein :)

Reply

Marsh Posté le 27-08-2015 à 18:26:48    

antac a écrit :

"\" <> "/" hein :)


 
 
Tu es genial ANTAC.  
 
Effectivement, j ai mis slash au lieu anti slash ! Bêta que je suis.
 
Et maintenant , ca me donne bien le resultat voulu (saut de ligne dans l'email) :  
 
 ETAT CIVIL :  
nom /prenom
adresse
code/ville
telephone(1)
telephone(2)  
 
 
Merci beaucoup.  
Alain.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed