web-dev-qa-db-ja.com

PHP mailで改行が機能しない

私は以下を使用してメールを送信しています:

<php ....
$message = 'Hi '.$fname.', \r\n Your entries for the week of '
   .$weekof.' have been reviewed. \r\n Please login and View Weekly reports to see the report and comments. \r\n Thanks, \r\n'.$myname;

mail($to, $subject, $message, $from);
?>

メッセージを受信すると、「\ r\n」で新しい行を開始せず、メッセージの一部として印刷します。

他のクライアントではなく、Thunderbird 3でのみ試しました。

46
ChuckO

'"に変更してください-phpは、単一引用符内の文字列をリテラルとして解釈しますが、引用符(")を使用すると、\r\nを必要なものに展開します。

詳細: http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.single

108
Oren

質問に対する答えではありませんが、誰かの助けになるかもしれません。

HTMLメッセージを送信し、\ nの代わりに<BR>を使用します。

そして、<PRE></PRE>またはCSSを事前にフォーマットされたテキストに使用して、\ nを実際の新しい行に変換します。

$headerFields = array(
    "From: [email protected]",
    "MIME-Version: 1.0",
    "Content-Type: text/html;charset=utf-8"
    );
mail($to, $subj, $msg, implode("\r\n", $headerFields));
5
<?php ....
$message = "Hi ".$fname.", \r\n Your entries for the week of "
   .$weekof." have been reviewed. \r\n Please login and View Weekly reports to see the report and comments. \r\n Thanks, \r\n".$myname;

mail($to, $subject, $message, $from);
?>
2
kayleighsdaddy