Проблема разрыва строки почты PHP


Я хочу отформатировать содержимое почты, чтобы отобразить содержимое в другой строке. вот содержание моего сообщения. но \n и \r в этом случае не работают. он просто показывает все содержимое в одной строке.

$message = 'Thank you for using . We really appreciate your business.'."\r\n".'If you are making your payment by mail, please make the check out to "blah blah" and send it to:'."\n".'blah blah '."\n".'blah blah'."\n".'San Gabriel, CA 91776'."\n".'Please see the attached invoice in PDF format for easy saving & printing purposes.';

$attachment = chunk_split(base64_encode($pdfdoc));
$headers = "From: ".$from.$eol;
$headers .= "MIME-Version: 1.0".$eol;
$headers .= "Content-Type: multipart/mixed; boundary=\"".$separator."\"".$eol.$eol;
$headers .= "Content-Transfer-Encoding: 7bit".$eol;
$headers .= "This is a MIME encoded message.".$eol.$eol;
$headers .= "--".$separator.$eol;
$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"".$eol;
$headers .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
$headers .= $message.$eol.$eol;
$headers .= "--".$separator.$eol;
$headers .= "Content-Type: application/pdf; name=\"".$filename."\"".$eol;
$headers .= "Content-Transfer-Encoding: base64".$eol;
$headers .= "Content-Disposition: attachment".$eol.$eol;
$headers .= $attachment.$eol.$eol;
$headers .= "--".$separator."--";
mail($_POST['add6'],$subject, $message, $headers);

Как я могу это сделать?

Author: Andromeda, 2009-09-28

4 answers

Вы сообщаете почтовому клиенту, что сообщение является HTML, поэтому комбинация CR LF будет обрабатываться как любые другие пробелы.

Чтобы исправить это, измените тип контента, чтобы показать, что вы отправляете обычное текстовое электронное письмо

$headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"".$eol;

В качестве альтернативы, превратите ваше сообщение в HTML-сообщение - простой способ сделать это в вашем случае - запустить его через nl2br, чтобы превратить новые строки в теги <br>

 12
Author: Paul Dixon, 2009-09-28 08:45:21

Да, у вас есть Content-Type: text/html, поэтому CR LF обрабатывается как пробел. Либо отправьте его как Content-Type: text/plain, либо позвоните nl2br о вашем содержимом.

 5
Author: Dominic Rodger, 2009-09-28 08:44:31

Ваш тип контента - HTML, поэтому вам следует использовать теги br или p вместо строк

 1
Author: RageZ, 2009-09-28 08:45:47

Чтобы \n работал, он должен быть в двойных кавычках, а не в одинарных. "\n" - это правильно, "\n" - неправильно и не будет работать.

 0
Author: Per Östlund, 2009-09-28 08:37:51