
表題のことでこまっております。
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メーラーで見たときにははみ出していません。
これはなぜでしょうか?宜しくお願いします。
No.1ベストアンサー
- 回答日時:
メールのヘッダは空の改行がある場合がヘッダーの終わりと認識されます。
余計な改行が入っているためかもしれません。
多分\r\nの動作がOSによって違うためだと思います。
\r\n ではなく、 \n だけにしてみたらどうでしょうか。
この回答への補足
お返事をいただき有難うございます。
教えていただいた様に書き換えたところ、空行の挿入がなくなりました。
有難うございました。
ただ、\r\n→\nにしたばかりでは、本文が文字化けしてしまい、$header .= "Content-Transfer-Encoding: base64\n";
から
$header .= "Content-Transfer-Encoding: 7bit\n";
にしたところ、文字化けはなくなりました。
あまり意識せずに記述していたのですが、送信内容はテキストだけなので7bitでいいと気付きました。
表題とはかけ離れていますが、base64で文字化けしたのはなぜでしょうか?
後学のためにご教授ください。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP Content-Typeが機能していない? 2 2022/07/17 11:10
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- PHP phpの imap_search で漢字コード 1 2022/09/06 17:32
- Gmail 【お助け!】サーバーからのメール送信でGmailに送信されない問題について 1 2023/06/20 22:03
- Outlook(アウトルック) 休みが明けてメールをみたらやばいです 3 2022/08/17 09:03
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
ifの中に改行とコメントを書い...
-
【VBA】エクセルで最後の不要な...
-
phpで送ったメールのヘッダーが...
-
ソースコードの1行が長いとき...
-
回答していて思ったんですが・・・
-
WriteFile関数
-
C#で文字列を抜き出す
-
「続行するには何かキーを押し...
-
Alt+Enterでセル内改行された文...
-
PHPで出力したHTMLのソースが汚い
-
JavaMail,本文中の改行について
-
VBでcsv読込TextFieldParser...
-
エスケープ文字の復帰(¥r)と...
-
DelphiのTMemoのテキスト末尾の...
-
textarea , PHP, 確認画面 改行
-
Scilabの使い方
-
MacOSXのgccのprintfで改行が出...
-
jsp 改行コードで改行させて表...
-
改行のことで
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
C++で空Enterの入力を判...
-
VBAでCSVをExcelに取り込む時に...
-
改行について
-
改行を読み飛ばす
-
テキストボックス行の桁数を制...
-
C# DataGridViewのセルを改行禁...
-
LaTeX: captionの中で改行した...
-
JAVA System.out.println の ...
-
エクセルVBA 文字列領域が不足...
-
最終行の改行について
-
グレープシティのSPREAD...
-
【VBA】エクセルで最後の不要な...
-
jsp 改行コードで改行させて表...
-
ラベル(スタティックテキスト)...
-
1行ごとに取得して、その改行...
-
ファイルから読み取った改行文...
-
JavaDoc コメントの改行について
おすすめ情報