在邮件正文中保留换行符

问题描述:

我有一个反馈表,用户可以在textarea中输入他/她的反馈。当提交表单时,我使用php mail函数将所有用户的详细信息放入邮件中。在邮件正文中保留换行符

mail("[email protected]", "Subject: Comments posted by $postedBy", $message, "From: $emailID"); 

这里$message是用户评论。但是我在电子邮件正文中得到了类似的内容。

Hi.test line break\r\nnew line\r\nnewline 2\r\ntest again\r\nagain. 

文本区中的换行符显示在邮件中。我怎样才能解决这个问题?

编辑:

$message = mysql_real_escape_string($_POST['comments']); 
+0

(仅限于Windows)当PHP直接与SMTP服务器通话时,如果在行的开头找到句号,它将被删除。为了解决这个问题,用双点替换这些事件。 – 2011-02-14 08:32:41

+0

如何设置`$ message`?你可以发布该行的代码吗? – lonesomeday 2011-02-14 08:41:00

+0

很遗憾看到另一个SPAM网关... – 2011-02-14 09:20:09

是\ r \ n直接显示或全部在一行中没有看到\ r \ n? 最后,我认为你必须设置正确的内容类型。 在http://php.net/manual/en/function.mail.php的示例4中,您可以看到如何设置内容类型。但你必须使用纯文本/文本。

编辑: 编辑之后:mysql_real_escape掩盖了所有换行符。在你的邮件()上使用$ _POST ['comment'] - 打电话让它工作!

mail($to, $subject, $_POST['comment'], $from); 

。在你的代码中的一些功能与\ r \ n替换换行符。
只是跟踪你的代码,看看,这个替换发生的地方,并删除它。
没什么大不了

我不知道,如果你已经尝试过这一点,但你可以尝试用“<BR>”替换为“\ r \ n”。
或者看看是否可以更改电子邮件MIME类型
入住这
http://php.bigresource.com/Email-MIME-Types-KesYPexl.html