Suite à un formulaire....

t671 Messages postés 1479 Date d'inscription   Statut Membre Dernière intervention   -  
t671 Messages postés 1479 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un formulaire sur un site, qui une fois rempli m'envoie un mail avec les éléments du formulaire :

$nom = $_POST['nom']; 
$prenom = $_POST['prenom']; 
$demande = $_POST['demande']; 

$msg = "De:\t$nom  $prenom\n"; 
$msg .= "Sa demande:\t$demande\n\n"; 
............


Le "$msg" est ce que je reçois par mail.
Je souhaietrais que dans le mail que je reçois, les "De:" et "Sa demande:" soient soulignés.
Comment le préciser dans le script ?

Merci

8 réponses

  1. ze-life-of-quent1 Messages postés 2169 Statut Membre 780
     
    Bonjour,
    pour souligner du texte dans un e-mail, il suffit d'utiliser le code HTML correspondant. Il suffit donc de mettre "De:" et "Sa demande:" entre les balises
    <u> et </u>
    0
  2. t671 Messages postés 1479 Date d'inscription   Statut Membre Dernière intervention   11
     
    Ben non !
    Si j'écris :

    $msg = "<u>De:</u>\t$nom  $prenom\n"; 
    $msg .= "<u>Sa demande:</u>\t$demande\n\n"; 
    


    dans le message que je reçois, les <u> et </u> apparraissent.

    Si j'écris :

    $msg = <u>"De:"</u>"\t$nom  $prenom\n"; 
    $msg .= <u>"Sa demande:"</u>"\t$demande\n\n"; 
    


    le script est en erreur.
    0
    1. ze-life-of-quent1 Messages postés 2169 Statut Membre 780
       
      C'est parce que vous n'avez pas précisé à PHP que votre mail contient du code HTML. Voyez l'exemple n°4 de cette page pour en savoir plus: https://www.php.net/manual/fr/function.mail.php
      0
  3. jp
     
    $msg = '<html>';
    $msg.= '<body>';
    $msg.= 'blabla';
    $msg.= '</body>';
    $msg = '</html>';
    0
  4. t671 Messages postés 1479 Date d'inscription   Statut Membre Dernière intervention   11
     
    Bonjour,

    J'ai essayé sans succès :
    $msg = '<u>' "De:" '</u>' "\t$nom  $prenom\n"; 

    => erreur
    et
    $msg = '<u>';
    $msg = "De:\t$nom  $prenom\n"; 

    => pas de résultat .......... !!!!!

    Dans le premier essai, je voudrais qu'uniquement le "De:" soit souligné.

    :-(
    0
    1. ze-life-of-quent1 Messages postés 2169 Statut Membre 780
       
      Bonjour,
      c'est parce qu'il faut préciser ceci dans mail():
      'Content-type: text/html; charset=iso-8859-1' . "\r\n"
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. t671 Messages postés 1479 Date d'inscription   Statut Membre Dernière intervention   11
     
    Et je fais comment pour préciser 'Content-type: text/html; charset=iso-8859-1' . "\r\n" dans mon script, et où ????

    $msg = "De:\t$nom  $prenom\n";
    $msg .= "Sa demande:\t$demande2\n\n";
    $recipient = "xxxxxxxxxx@numericable.fr";	
    $subject = "..........";
    $mailheaders = "From: Formulaire contact <> \n";
    $mailheaders = "Bcc: xxxxxxxxxx@gmail.com\n"; 
    $mailheaders .= "Reply-To: $email\n\n";
    
    mail($recipient, $subject, $msg, $mailheaders);
    header("Location: remerciement.php?nom=$nom&prenom=$prenom" );
    0
    1. ze-life-of-quent1 Messages postés 2169 Statut Membre 780
       
      Ajoutez ceci:
      $mailheaders .= "Content-type: text/html; charset=iso-8859-1\r\n";
      0
  7. t671 Messages postés 1479 Date d'inscription   Statut Membre Dernière intervention   11
     
    J'ai écrit donc ceci :

    $msg = '<u>';
    $msg = "De:\t$nom  $prenom\n";
    $msg .= "E-Mail:  \t$email\n";
    $msg .= "Sa demande:\n\n$demande2\n";
    
    $recipient = "xxxxxxxxx@gmail.com\n";				
    $subject = "xxxxxxxxxx";
    $mailheaders .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $mailheaders = "From: yyyyyyyyyy<> \n";
    $mailheaders .= "Reply-To: $email\n\n";
    


    Et le soulignement n'apparait pas !?

    Question en + :
    Quand je reçois le formulaire dans ma boîte mail, je le reçois de = adresse de l'hébergeur. Normalement, l'adresse de .... ne devrait-il pas être, dans le cas ci-dessus, yyyyyyyyyyyyyy ???

    Merci
    0
    1. ze-life-of-quent1 Messages postés 2169 Statut Membre 780
       
      remplacez:
      $mailheaders .= "Content-type: text/html; charset=iso-8859-1\r\n";
      $mailheaders = "From: yyyyyyyyyy<> \n";
      par:
      $mailheaders = "From: yyyyyyyyyy<> \n";
      $mailheaders .= "Content-type: text/html; charset=iso-8859-1\r\n";
      0
  8. t671 Messages postés 1479 Date d'inscription   Statut Membre Dernière intervention   11
     
    Etrange .................. !!!!!!

    Si j'inverse les lignes, comme précise ze-life-of-quent1, l'affichage du formulaire reçu par mail est sur une seule ligne.
    Et pour le "from", toujours pareil. L'adresse est celle du serveur !

    Je récapitule mon code en entier :

    <?php 
    
    $nom = $_POST['nom'];
    $prenom = $_POST['prenom'];
    $demande = $_POST['demande'];
    
    $msg = '<u>';
    $msg = "De:\t$nom  $prenom\n";
    $msg .= "Sa demande:\n\n$demande\n";
    
    $recipient = "xxxxxxxxxxx@gmail.com\n";				
    $subject = "xxxxxxxxx";
    $mailheaders = "From: yyyyyyyyyyyyyy<> \n";
    $mailheaders .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $mailheaders .= "Reply-To: $email\n\n";
    
    
    mail($recipient, $subject, $msg, $mailheaders);
    header("Location: remerciement.php?nom=$nom&prenom=$prenom" ); 
    ?>
    0
    1. ze-life-of-quent1 Messages postés 2169 Statut Membre 780
       
      Remplacez:
      $msg = '<u>';
      $msg = "De:\t$nom  $prenom\n";
      $msg .= "Sa demande:\n\n$demande\n";
      par:
      $msg ="<u>";
      $msg .= "De:\t$nom  $prenom<br />";
      $msg .= "Sa demande:<br /><br />$demande<br />";

      En fait, vous devez remplacer tous les sauts de ligne du message par <br />
      0
  9. t671 Messages postés 1479 Date d'inscription   Statut Membre Dernière intervention   11
     
    Merci ze-life-of-quent1 ! J'ai enfin réussi !!!!!
    Par contre, pour
    $mailheaders = "From: yyyyyyyyyy<> \n";
    

    cette ligne devrait afficher yyyyyyyyyy pour l'émetteur du message lors de la réception ! Non ?
    Et moi, ça m'affiche l'adresse du serveur, soit "serveur@free.fr".

    Pourquoi ?
    0