Php pour l'envoie vers une boite mail

Résolu
DanouL Messages postés 785 Statut Membre -  
DanouL Messages postés 785 Statut Membre -
Bonjour,

je n'arrive pas a envoyer le formulaire vers une boite mail + message a l'écran

il y a le code pour envoyer en php :

<?php 
$TO = "mon adresse  mail"; 
$h = "From: " . $TO; 
while (list($key, $val) = each($_POST)) 
{$message .= "$key : $val\n";} 
mail($TO, "inscription newsletter", "$message", $h); 
?>


et mon code qui est en html ,(formulaire de contact ) avec le nom ,prénom adresse.....

et en en fin de code il y a 3 bouton ( envoyer ,rétablir,afficher )

2 sur 3 fonctionne ,celui qui ne fonctionne pas étant "envoyer"

<input type= "submit" value="Envoyer" id="submit" onClick="envoie(this.form)"/>


c'est 2 code sont-il bon ?

et donc je veut recevoir ce qui a été rempli dans le formulaire , dans la boite mail et si possible pas en "texte brute"


sur ce lien , il m'explique ce que je veut réaliser seulment je n'y arrive pas a mixé avec mon code personnel

https://a-pellegrini.developpez.com/tutoriels/php/mail/

Merci ,je commence a être pessimiste avec ce php




--
merci de ne pas oublier de mettre résolu lorsque cela est le cas ou de dire résolu quand vous ne pouvez pas !

+1 permet d'aider les autres !
----------------------------
[Aimer ce n'est pas renoncer à sa liberté, c'est lui donner un sens.]

2 réponses

  1. Meoran Messages postés 1566 Date d'inscription   Statut Membre Dernière intervention   208
     
    Salut,

    $h = "From: " . $TO;

    Tu t'envoies un mail à toi-même là. Tu en est conscient ?

    Sinon le code est correct...

    Pour formater ton texte en html, rajoute ceci aux headers :

    $h .= 'Mime-Version: 1.0'."\r\n";
    $h .= 'Content-type: text/html; charset=utf-8'."\r\n";

    TU peux ensuite rajouter du code html à ton texte qui sera interprété.
    1
    1. DanouL Messages postés 785 Statut Membre 26
       
      tout d'abord merci pour l'aide !

      ensuite

      $h .= 'Mime-Version: 1.0'."\r\n"; 
      $h .= 'Content-type: text/html; charset=utf-8'."\r\n"; 
      


      je le mets dans le php , par exemple a la fin ?



      et le From ,je mets un nom ou l'adress mail ?
      0
    2. Meoran Messages postés 1566 Date d'inscription   Statut Membre Dernière intervention   208
       
      Les lignes sont à rajouter juste après

      $h = "From: " . $TO"\r\n";

      From : adresse mail
      0
    3. DanouL Messages postés 785 Statut Membre 26
       


      ce qui donne




      <?php
      $TO = " mon adresse mail";
      $h = " mon adresse mail:"
      $h .= 'Mime-Version: 1.0'."\r\n";
      $h .= 'Content-type: text/html; charset=utf-8'."\r\n"; . $TO;
      while (list($key, $val) = each($_POST))
      {$message .= "$key : $val\n";}
      mail($TO, "inscription newsletter", "$message", $h);
      ?>




      ???
      0
    4. Meoran Messages postés 1566 Date d'inscription   Statut Membre Dernière intervention   208
       
      Presque :

      <?php
      $TO = " mon adresse mail";
      $h = "From: " . $TO"\r\n";
      $h .= 'Mime-Version: 1.0'."\r\n";
      $h .= 'Content-type: text/html; charset=utf-8'."\r\n"; . $TO;

      //Le message que tu souhaites envoyer

      $message = "Blablabla<b>blabla</b>...etctectc";

      mail($TO, "inscription newsletter", "$message", $h);
      ?>

      Et il faut que tu formates le $message comme tu le souhaites avec des balises html.
      0
    5. DanouL Messages postés 785 Statut Membre 26
       
      c'est bien pour ce que je veut ? :je veut recevoir ce qui a été rempli dans le formulaire , dans la boite mail et si possible pas en "texte brute" !
      0
  2. DanouL Messages postés 785 Statut Membre 26
     
    j'ai donc crée le fichier envoi.php

    et le résumer e tout est :


    <FORM method="post" action="envoi.php" >    
    
    
    <?php    
    $TO = "mon mail";    
    $h = "From: " . $TO"\r\n";    
    $h .= 'Mime-Version: 1.0'."\r\n";    
    $h .= 'Content-type: text/html; charset=utf-8'."\r\n"; . $TO;    
    
    $message = "Bonjour,<br/>    
    l'utilisateur <b>$_POST['login']</b> viens de vous envoyer un <u>mail</u>.<br/>Son nom est $_POST['nom] et son prénom $_POST[prénom']. Son commentaire est $_POST['comm'] ";    
    
    mail($TO, "inscription formualaire", "$message", $h);    
    ?>    
    


    la j'ai bon ? :)

    merci de ne pas oublier de mettre résolu lorsque cela est le cas ou de dire résolu quand vous ne pouvez pas !

    +1 permet d'aider les autres !
    ----------------------------
    [Aimer ce n'est pas renoncer à sa liberté, c'est lui donner un sens.]
    0
    1. Meoran Messages postés 1566 Date d'inscription   Statut Membre Dernière intervention   208
       
      Le $message n'est qu'un exemple

      A toi de le formater comme tu veux


      Pour accéder à la valeur saisie par l'utilisateur dans le champ pays par exemple, tu y accèdes par $_POST['pays']
      0
    2. DanouL Messages postés 785 Statut Membre 26
       
      sayé je l'et formater comme je le voulais !
      le $_POST['pays'] je l'est rajouter a la suite de $_POST['comm'] "; ?

      jusque la c'est bon ?

      je serai de retour fin d'après ,ta ma énormément aider je te remercie beaucoup a tout a l'heure
      0
    3. DanouL Messages postés 785 Statut Membre 26
       
      me revoila :)

      je fait un résumer de ce que j'ai fait :

      - j'ai donc crée un fichier envoi.php :

      <FORM method="post" action="envoi.php" > 
      
      
      <?php 
      $TO = "clubsalon555@gmail.com"; 
      $h = "From: " . $TO"\r\n"; 
      $h .= 'Mime-Version: 1.0'."\r\n"; 
      $h .= 'Content-type: text/html; charset=utf-8'."\r\n"; . $TO; 
      
      $message = "Bonjour,et merci pour votre message <br/> 
      l'utilisateur <b>$_POST['login']</b> viens de vous envoyer un <u>mail</u>.<br/>Son nom est $_POST['nom] et son prénom $_POST[prénom']. Son commentaire est $_POST['comm'] "; 
      $_POST['pays']
      mail($TO, "inscription formualaire", "$message", $h); 
      ?> 


      voila
      0
    4. Meoran Messages postés 1566 Date d'inscription   Statut Membre Dernière intervention   208
       
      Re,

      c'est presque bon. Je ne vois pas de champ "login" (d'input avec pour name : login) dans ton formulaire.

      $_POST['login'] n'existe donc pas.
      0
    5. Meoran Messages postés 1566 Date d'inscription   Statut Membre Dernière intervention   208
       
      <div><span><label for="nom">Nom<span class="Style3">*</span> : </label>
      <input id="nom" name="nom" type="text" /></span>

      <br/><br/>

      <span><label for="nom">Prenom<span class="Style3">*</span> : </label>

      <input type="text" id="prenom" name="nom" /></span>

      ET en reprenant ton code,

      tu donnes deux fois le même nom à deux inputs différents, ça peut pas le faire...

      <div><span><label for="nom">Nom<span class="Style3">*</span> : </label>
      <input id="nom" name="nom" type="text" /></span>

      <br/><br/>

      <span><label for="nom">Prenom<span class="Style3">*</span> : </label>

      <input type="text" id="prenom" name="prenom" /></span>

      Ainsi la valeur saisi par l'utilisateur dans le champ "nom" se retrouvera dans $_POST['nom']

      et "prenom" se retrouvera dans $_POST['prenom']
      0