Pergunta

Eu tenho o seguinte código que envia uma mensagem usando a função mail (). Tudo funciona bem, exceto as quebras de linha no final de cada linha não parece trabalho. Como você pode ver eu estou usando "\ r \ n" na esperança de que isso vai me dar uma quebra de linha, mas não eu adicionei <br> para obter o intervalo, mas eu prefiro não usar isso no caso de alguém não tem cliente de e-mail de um 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>
Foi útil?

Solução

Você está enviando-o como HTML -. Alterar o tipo de conteúdo para text/plain e ele deve funcionar

Outras dicas

O problema é que você diz, em seus cabeçalhos, que o e-mail é um e-mail HTML:

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

Se você quiser garantir compability com clientes HTML e texto, considere usar o tipo de conteúdo Multipart. Isto pode ser conseguido de várias maneiras diferentes, mas uma maneira simples é usar uma biblioteca que pode fazer isso por você. Por exemplo, você pode usar PERA: Mail_Mime

Eu não sou um especialista nesta área, mas o meu palpite seria que você está definindo o tipo de conteúdo para text / html, o que implica html de renderização (o que significa que as quebras de linha são convertidos para um espaço). Se você não estiver usando quaisquer elementos HTML (que não parecem), tente definir o tipo de conteúdo para text / plain.

Como mencionado antes, ou defini-lo como texto / simples ou adicionar uma quebra de HTML para quebras de linha:

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top