我有以下代码发送使用邮件()函数的消息。一切正常,但在每一行的结尾换行符似乎并不工作。正如你可以看到我使用“\ r \ n”希望这会给我一个换行符,但它并没有我加入<br>得到休息,但我宁愿不使用的情况下,人如果没有按”吨有一个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>
有帮助吗?

解决方案

您可以发送它作为HTML - 改变内容类型text/plain,它应该工作

其他提示

问题是,你说,你的标题,该邮件为HTML电子邮件:

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

如果你想确保HTML和文本的客户保持兼容,可以考虑使用多部分的内容类型。这可以在许多不同的方式来实现,但是一个简单的方法是使用能为你做这个库。例如,可以使用 PEAR:Mail_Mime

我不是这方面的专家,但我的猜测是,你设置的内容类型为text / html,这意味着HTML渲染(这意味着换行符被转换成一个空格)。如果你不使用任何HTML元素(这似乎不是),尝试设置内容类型为text / plain的。

如前所述,将它设置为文本/无格式或添加一个HTML断裂换行:

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top