電子書籍の厳選無料作品が豊富!

下記スレッド
http://oshiete1.goo.ne.jp/qa4137451.html
で以下のような質問をしていたのですが、
<質問開始>
よくメールフォームの本文部分やヘッダー部分の改行などで\r\n又は\nが使用されていますが、\r\nと\nは何が違うのでしょうか?

どちらも通常の改行のように思えますが。
<質問終了>
途中で質疑応答が途切れてしまいました。

上記の質問への回答から、私の理解は以下のようになりますが、私の理解は正しいのでしょうか?
<私の理解開始>
TinyPineさん
ご回答、ありがとうございました。

つまり、PHPにおけるmail関数のメッセージ組み立て部分では、改行はつねに「\n」ではなく、「\r\n」で記述するべきということですか?

また、PHPにおけるmail関数のメッセージ組み立て部分で、メッセージの行間に間をあけたくない場合、\r(復帰)で改行すればよいのでしょうか?「\r\n」又は「\n」では、行と行の間に一行空白ができてしまいますが?

<私の理解終了>

お分かりの方おられましたら、私の理解が正しいか判定をお願いします。

A 回答 (3件)

えっと....


PHP は使っていないのですが, RFC2822 による仕様と PHP の mail 関数の仕様で混乱してるような気がします.
[RFC2822]
RFC2822 では, 行末を \r\n (CRLF: 0d0a) と定義しています.
[PHP]
PHP の mail 関数で送信する場合, 送信するメッセージの改行コードは \n (LF: 0a), 追加ヘッダの改行コードは \r\n だそうです.
\n で空行が空いてしまう理由はよくわかりません.

参考URL:http://jp2.php.net/manual/ja/function.mail.php

この回答への補足

Tacosanさん
ご回答、ありがとうございました。

了解しました。

補足日時:2008/06/30 20:34
    • good
    • 0
この回答へのお礼

Tacosanさん

では、PHP の mail 関数で送信する場合, 送信するメッセージ内では「\r」は全く使用しないものなのですか?もし使用する場合、どのような時に使用するのでしょうか?

よろしくお願いします。

お礼日時:2008/06/30 20:39

PHPのmail関数は、変な実装がされているらしくて、ヘッダー部の改行は「\r\n」で、本文の改行は「\n」でないとだめとか。


一度お使いのバージョンのPHPのマニュアルを確認された方がよろしいかと思います。

この回答への補足

JaritenCatさん

では、PHP の mail 関数で送信する場合, 送信するメッセージ内では「\r」は全く使用しないものなのですか?もし使用する場合、どのような時に使用するのでしょうか?

よろしくお願いします。

補足日時:2008/06/30 20:39
    • good
    • 0
この回答へのお礼

JaritenCatさん
ご回答、ありがとうございました。

了解しました。

お礼日時:2008/06/30 20:36

windowsのテキストの改行 → \r\n


macintoshのテキストの改行 → \r
unixのテキストの改行 → \n

mailを吐くサーバのOSによって違うけれど大抵unixに合わせてあると思うよ。
サーバもサービスもなんもかんもwindowsだと\r\nかもしれ  。

この回答への補足

SAYKAさん
ご回答、ありがとうございました。

その1:
>mailを吐くサーバのOSによって違うけれど大抵unixに合わせてあると思うよ。
unixで「\r\n」とするとうまく改行されないのでしょうか?

その2:
メッセージの行間に間をあけたくない場合、\r(復帰)で改行すればよいのでしょうか?

補足日時:2008/06/30 20:07
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報