Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1872 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  pble mail() SMTP avec easyphp sous windows.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pble mail() SMTP avec easyphp sous windows.

n°2264335
alain_47
Posté le 12-08-2015 à 21:43:49  profilanswer
 

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.

mood
Publicité
Posté le 12-08-2015 à 21:43:49  profilanswer
 

n°2264342
antac
..
Posté le 13-08-2015 à 00:28:12  profilanswer
 

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

n°2264343
alain_47
Posté le 13-08-2015 à 00:42:31  profilanswer
 

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.  
 

n°2264683
alain_47
Posté le 22-08-2015 à 12:24:37  profilanswer
 

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)

n°2264725
antac
..
Posté le 24-08-2015 à 16:08:31  profilanswer
 

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
n°2264746
alain_47
Posté le 24-08-2015 à 23:24:48  profilanswer
 

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.

n°2264848
steph-acne​t
Posté le 26-08-2015 à 12:38:38  profilanswer
 

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 )

n°2264853
antac
..
Posté le 26-08-2015 à 14:14:28  profilanswer
 

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

n°2264879
alain_47
Posté le 26-08-2015 à 23:21:22  profilanswer
 

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 :-)
   
 
 
 
 
 

n°2264880
alain_47
Posté le 26-08-2015 à 23:27:54  profilanswer
 

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>
 
 
   


mood
Publicité
Posté le 26-08-2015 à 23:27:54  profilanswer
 

n°2264884
antac
..
Posté le 27-08-2015 à 08:49:52  profilanswer
 

"\" <> "/" hein :)

n°2264917
alain_47
Posté le 27-08-2015 à 18:26:48  profilanswer
 

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.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  pble mail() SMTP avec easyphp sous windows.

 

Sujets relatifs
Mais où sont donc passées les Windows Form en C++?Création pdf avec envoi mail (TCPDF)
Problème de données php dans envoi de mail htmlRecuperer l'URL d'un spreadsheet et l'envoyer par mail
Windows et API WindowsMail avec PHP- Fontion mail? ou SMTP?
envoyer un mail avec pièce jointe en dur.Convertir un fichier Swf en fichier pour "écran de veille sous Windows
Convertir un fichier Swf en fichier pour "écran de veille sous Windows 
Plus de sujets relatifs à : pble mail() SMTP avec easyphp sous windows.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR