アプリ版:「スタンプのみでお礼する」機能のリリースについて

表題のことでこまっております。

phpでメールフォームを作ったのですが、送ったメールをOutlookExpress(OE)で受信したときに、ヘッダーの一部が本文に表示されてしまいます。
OEで受信メールのプロパティを開くと下記のようになっております。

Return-Path: <xxx@xxx>
Delivered-To: xxxxx_xxxxx@xxxx.xxx
Received: (qmail 16291 invoked by uid 48); 1 Feb 2007 16:26:13 +0900
Date: 1 Feb 2007 16:26:13 +0900
Message-ID: <20070201072613.16290.qmail@xxxx.xxx>
To: yyyyy@yyyy.yyy
Subject: =?iso-2022-jp?B?
From: zzz@zzzz.zzz
X-Mailer: ContactForm

MIME-Version: 1.0

Content-Type: text/plain;charset=ISO-2022-JP

Content-Transfer-Encoding: base64

本文にはみ出るのは最後の3行(MIME~base64)です。
原因は空行が入っているためだと思いますが、OEのメールソースでは空行はありません。
プログラムのソースは
$header ="From: $from\r\n";
$header ="CC: $cc\r\n";
$header .= "X-Mailer: $mailer\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: text/plain;charset=ISO-2022-JP\r\n";
$replyheader .= "Content-Transfer-Encoding: base64\r\n";
$Subject='=?iso-2022-jp?B?'.base64_encode(mb_convert_encoding($Subject,'JIS','SJIS')).'?=';
@mail($from,$Subject,$Message,$header);

hotmailなどのwebメーラーで見たときにははみ出していません。
これはなぜでしょうか?宜しくお願いします。

A 回答 (1件)

メールのヘッダは空の改行がある場合がヘッダーの終わりと認識されます。


余計な改行が入っているためかもしれません。
多分\r\nの動作がOSによって違うためだと思います。
\r\n ではなく、 \n だけにしてみたらどうでしょうか。

この回答への補足

お返事をいただき有難うございます。
教えていただいた様に書き換えたところ、空行の挿入がなくなりました。
有難うございました。

ただ、\r\n→\nにしたばかりでは、本文が文字化けしてしまい、$header .= "Content-Transfer-Encoding: base64\n";
から
$header .= "Content-Transfer-Encoding: 7bit\n";
にしたところ、文字化けはなくなりました。

あまり意識せずに記述していたのですが、送信内容はテキストだけなので7bitでいいと気付きました。
表題とはかけ離れていますが、base64で文字化けしたのはなぜでしょうか?
後学のためにご教授ください。
よろしくお願いします。

補足日時:2007/02/01 23:24
    • good
    • 1
この回答へのお礼

表題の質問と補足の質問で、意味合いがが違うので
ここでこの質問は締め切りたいと思います。
本当に有難うございました。

お礼日時:2007/02/03 09:53

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