Suite à un formulaire....

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

  • Votes
  • Date
  • Date décroissante
  1. 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>
    1. 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.
    2. $msg = '<html>';
      $msg.= '<body>';
      $msg.= 'blabla';
      $msg.= '</body>';
      $msg = '</html>';
      1. 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é.

        :-(
        1. Bonjour,
          c'est parce qu'il faut préciser ceci dans mail():
          'Content-type: text/html; charset=iso-8859-1' . "\r\n"
      2. 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" );
        1. Ajoutez ceci:
          $mailheaders .= "Content-type: text/html; charset=iso-8859-1\r\n";
      3. 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
        1. 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";
      4. 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" ); 
        ?>
        1. 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 />
      5. 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 ?