71

私はPHPmail()関数を使用しています:

    $to      = 'AAAA <postmaster@xxx.xx>';
    $subject = 'BBBB';
    $message = "CCCC\r\nCCCC CCCC \r CCC \n CCC \r\n CCC \n\r CCCC";
    $headers = 'From: DDD<postmaster@xxx.xx>' . "\r\n";
    $headers .= "Content-Type: text/html; charset=\"UTF-8\"; format=flowed \r\n";
    $headers .= "Mime-Version: 1.0 \r\n"; 
    $headers .= "Content-Transfer-Encoding: quoted-printable \r\n";
    mail($to, $subject, $message, $headers);

このメールを受信すると、次のようになります。

CCCC CCCC CCCC CCC CCC CCC CCCC

私は次のようなものを期待します:

CCCC
CCCC CCCC CCC 
CCC 
CCC 
CCCC


Content-TypeHTTPヘッダー がなくても問題なく動作します。新しい行を作成し、「Content-Type」宣言を引き続き使用するにはどうすればよいですか?

4

13 に答える 13

127

<br>は であるため、a を使用する必要がありContent-Typeますtext/html

Content-Typeメールがプレーンテキストとして解釈されるため、ヘッダーがなくても機能します。本当に使用したい場合は使用\nする必要Content-Type: text/plainがありますが、マークアップが失われます。

こちらの同様の質問もご覧ください。

于 2013-04-17T14:55:01.670 に答える
35

HTML メールを送信する場合は、記載されているように<BR> (または<BR />、または</BR> ) を使用します。
プレーン テキストのメールを送信する場合は、%0D%0A
\r = %0D (Ctrl+M = キャリッジ リターン)
\n = %0A (Ctrl+A = ライン フィード)を使用

します。メールにメール リンクがある場合は、
例えば

<A HREF="mailto?To=...&Body=Line 1%250D%250ALine 2">Send email</A>

次に、%250D%250Aを使用します

%25 = %

于 2014-08-25T19:36:25.073 に答える
9

<br>の代わりに使用する必要があります\r\n。このために、組み込みの関数呼び出しnl2brを使用できます したがって、コードは次のようになります

 $message = nl2br("CCCC\r\nCCCC CCCC \r CCC \n CCC \r\n CCC \n\r CCCC");
于 2014-03-17T05:10:08.173 に答える
1

これは私にとってはうまくいきました。

$message  = nl2br("
===============================\r\n
www.domain.com \r\n
===============================\r\n
From: ".$from."\r\n
To: ".$to."\r\n
Subject: ".$subject."\r\n
Message: ".$_POST['form-message']);
于 2017-03-10T11:47:18.577 に答える
0

"" を使用するもう 1 つのことですが、"\r\n" と '\r\n' には違いがあります。

于 2018-04-08T22:13:35.783 に答える