- 締切済み
複数行の文字列をメールのヘッダーに入れて送る方法?
どなたか複数行の文字列をメールのヘッダーに入れて送る方法しっていますか? 例: $test = "今からテストメールを送信します。\n用意はいいですか?"; $mail_header .= "X- TEST: {$test}\r\n"; 上記のような文字列をメールのヘッダーに入れて送ると「今からテストメールを送信します。」部分はX- TEST:のヘッダーの中に納まりますが、「用意はいいですか?」部分がメールの本文の上部にはみ出してしまいます。ヒアドキュメントも試しましたが、文字列の改行部分以降がメールの本文の上部にはみ出してしまいます。 やはり、一行につき一つのヘッダーが必要なのでしょうか? このスレッドの質問に関して詳しい情報が記載されているサイトのURL等、ご存知でしたら、そちらもお願いします。
- みんなの回答 (4)
- 専門家の回答
お礼
追記: 下記のコードで上記の「この回答への補足」で指摘した文字化けは、なくなりました。 ただし、やはりヘッダー内の文字列は、Becky ver2(メーラー)のテンプレートで出力時にヘッダー内で定めた任意の改行箇所で改行はされません。 例: ヘッダー内の文字列: $test = "今からテストメールを送信します。\n 用意はいいですか?"; 出力: 今からテストメールを送信します。 用意はいいですか? <コード開始> <?php if (isset($_POST['send'])) { $version=phpversion(); $header=<<<eof From: hoge <hoge@example.co.jp> Return-Path: <fuga@example.co.jp> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit X-Mailer: PHP/{$version} eof; mb_language('japanese'); mb_internal_encoding('UTF-8'); $test = "今からテストメールを送信します。\n 用意はいいですか?"; $header .= "X-TEST: {$test}\r\n"; $to="piyo@example.co.jp"; $subject="test"; $message=<<<eof hoge1 hoge2 hoge3 hoge4 eof; $header = mb_convert_encoding($header, "JIS"); mail($to,$subject,$message,$header); print $header; exit; } ?> <コード終了> いかがでしょうか?やはりヘッダー内に改行を指定するのは無理な話なのでしょうか?
補足
yambejpさん ご回答、ありがとうございました。 yambejpさんの上記コードだと、X-TEST: ヘッダー内の文字列「今からテストメールを送信します。\n 用意はいいですか」が、文字化けして届きます。 文字化けの改善方法が分かりません。 一様、そのままテンプレートに適用しましたが、文字化けした文字が一行で表示されました。