Domanda

Ho il seguente codice che invia un messaggio usando la funzione mail (). Tutto funziona bene tranne le interruzioni di riga alla fine di ogni riga non sembrano funzionare. Come puoi vedere sto usando & Quot; \ r \ n " sperando che questo mi dia un'interruzione di riga ma non ho aggiunto <br> per ottenere l'interruzione, ma preferirei non usarlo nel caso in cui qualcuno non abbia un client di posta elettronica 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>
È stato utile?

Soluzione

Lo stai inviando come HTML: cambia il tipo di contenuto in text/plain e dovrebbe funzionare.

Altri suggerimenti

Il problema è che, nelle intestazioni, dici che la posta è un'e-mail HTML:

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

Se si desidera garantire la compatibilità con client HTML e di testo, considerare l'utilizzo del tipo di contenuto Multipart. Ciò può essere ottenuto in molti modi diversi, ma un modo semplice è utilizzare una libreria che può farlo per te. Ad esempio, puoi utilizzare PEAR: Mail_Mime

Non sono un esperto in questo settore, ma suppongo che tu stia impostando il tipo di contenuto su text / html, il che implica il rendering html (il che significa che le interruzioni di riga vengono tradotte in uno spazio). Se non stai utilizzando elementi HTML (che sembrano non farlo), prova a impostare il tipo di contenuto su text / plain.

Come accennato in precedenza, impostalo su text / plain o aggiungi un'interruzione HTML per le interruzioni di riga:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top