Question

J'ai le code suivant qui envoie un message en utilisant la fonction mail (). Tout fonctionne bien, sauf que les sauts de ligne à la fin de chaque ligne ne semblent pas fonctionner. Comme vous pouvez le voir, j'utilise & Quot; \ r \ n " en espérant que cela me donnera un saut de ligne, mais je n’ai pas ajouté <br> pour obtenir la pause, mais je préférerais ne pas l’utiliser si quelqu'un ne dispose pas d'un client de messagerie HTML.

<?php
  $to = 'user@example.com'; // Was a valid e-Mail address, see comment below
  $name = $_REQUEST['name'] ;
  $email = $_REQUEST['email'] ;
  $subject = $_REQUEST['subject'] ;
  $message = $_REQUEST['message'] ;

  $content = 'Name: '.$name."\r\n";
  $content .= 'Email: '.$email."\r\n";
  $content .= 'Subject: '.$subject."\r\n";
  $content .= 'Message: '.$message."\r\n";

  $headers  = 'MIME-Version: 1.0' ."\r\n";
  $headers .= 'Content-type: text/html; charset=iso-8859-1' ."\r\n";

  // Additional headers
  $headers .= 'To: iVEC Help <help@ivec.com>'. "\r\n";
  $headers .= 'From: '.$name.' <'.$email.'>' . "\r\n";

  mail( $to, $subject, $content, $headers);

?>

<p> You sent it ... good work buddy </p>
<p> <?php   '$name' ?> </p>
Était-ce utile?

La solution

Vous l'envoyez au format HTML - changez le type de contenu en text/plain et cela devrait fonctionner.

Autres conseils

Le problème est que vous dites, dans vos en-têtes, que le courrier est un courrier HTML:

$headers .= 'Content-type: text/html; charset=iso-8859-1' ."\r\n";

Si vous souhaitez assurer la compatibilité avec les clients HTML et texte, envisagez d'utiliser le type de contenu Multipart. Ceci peut être réalisé de différentes manières, mais un moyen simple consiste à utiliser une bibliothèque capable de le faire pour vous. Par exemple, vous pouvez utiliser PEAR: Mail_Mime

Je ne suis pas un expert dans ce domaine, mais j’imagine que vous définissez le type de contenu sur text / html, ce qui implique un rendu html (ce qui signifie que les sauts de ligne sont traduits en un espace). Si vous n'utilisez aucun élément HTML (ce qui semble ne pas l'être), essayez de définir le type de contenu sur text / plain.

Comme mentionné précédemment, définissez-le sur text / plain ou ajoutez un saut HTML pour les sauts de ligne:

$content = 'Name: '.$name."</br>\r\n";

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top