メールの先頭の改行を無くす方法は?

このQ&Aのポイント
  • mail()で送信したメールを受けると、メールの本文の先頭に改行が入っていることがあります。
  • Content-typeを指定する場合に改行が入りますが、単純なソースでは改行は入りません。
  • OEで受信すると、本文の先頭に改行が入ってしまいます。改行を無くす方法はあるでしょうか?
回答を見る
  • ベストアンサー

メールの先頭の改行

mail()でメールを送信したメールを受けるとメールの本文の先頭に改行が入っているんですが、この改行を無くす方法はないでしょうか? その先頭の改行というのは必ず入るわけではなく、 http://ns103.net/ob/php-doc-j/function.mail.html の最初のソースのように単純なものなら改行は入りません。 Content-typeを指定したりすると改行が入ってしまいます。 改行が入る場合のソースを以下に書きます。 $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/plain; charset=\"iso-2022-jp\"\r\n"; $headers .= "From: Birthday Reminder <aaa@bbb.com>\r\n"; $headers .= "Cc: aaa@bbb.com\r\n"; $headers .= "Bcc: aaa@bbb.com\r\n"; $msg = "abc\ndef"; mail($mailad, 'subj', $msg, $headers); これをOEで受信すると、abcの前に改行が入っています。

  • PHP
  • 回答数3
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
noname#10325
noname#10325
回答No.3

$headers = "From: Birthday Reminder <aaa@bbb.com>\r\n"; $headers .= "Cc: aaa@bbb.com\r\n"; $headers .= "Bcc: aaa@bbb.com\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/plain; charset=\"iso-2022-jp\""; $msg = "abc\ndef"; mail($mailad, 'subj', $msg, $headers); で、どうでしょうか? from、cc 等の後に MIME宣言を入れるのと、charset の後の \r\n を外すのがミソかな...

その他の回答 (2)

  • kalze
  • ベストアンサー率47% (522/1092)
回答No.2

開発環境は?

  • kalze
  • ベストアンサー率47% (522/1092)
回答No.1

$headers .= "Bcc: aaa@bbb.com\r\n"; 上記部分の\r\nをなくすと?

ushsrg
質問者

補足

送信できませんでした。

関連するQ&A

  • 改行コードについて

    ファイルの文字コードはutf-8で改行コードはLFです。 メール送信時にメール文面の一部にいれるテキストを mysqlに保存しています。 メール送信のソース内でデータを読み込み送信までは できているのですが改行コードを変換したく $msg = str_replace("\r\n", "\n", $msg); とやってみましたが改行されず普通に\r\nと表示され うまく変換ができません。 いろいろと試した結果以下のソースでは正常に改行されました。 $msg = str_replace("\\r\\n", "\n", $msg); メール送信前にデバッグでしてみましたが読み込むデータの 改行部分は\r\nとなっているのは確認済みです。 \を多くつければ改行はできるようなのですがこれは仕様なの でしょうか? またmysqlに入れてあるデータはフォームから入力し登録 しているのですがLFの改行コードは\nなので登録時に\r\nではなく \nと変換してからmysqlに登録するのがいいものなのでしょうか?

    • 締切済み
    • PHP
  • 改行コードの変換について

    OS:Solaris2.6 改行コードをunixからms-dosへ、ms-dosからunixへ変換したいと思っています。 ながれとしては、ms-dosで作成したファイルをunixのほうで編集(プログラム) して、再びms-dosに戻すといったことがしたいと思っています。 そこで、 nkf -e aaa | tr '\r\n' '\n' > bbb nkf -e ccc | tr '\n' '\r\n' > ddd aaa:ms-dos ccc:編集後のファイル これでできると思ったのですが、dddの改行コードの表示がE'で Macintoshの改行コードになってしまします。 また、bbbのファイルですが改行が2回行われてしまいます。 例 aaa のファイルの内容 123 456 bbb のファイルの内容 123 456 どのようにすれば、解決できるか教えていただけないでしょうか? お願いします。

  • PHPからのHTMLメール送信

    PHP覚えはじめの初心者です。 下記のソースで自分宛にメールを送信すると、 会社のメールアドレスではHTMLメールとして受取れるのですが、 その他のメールアドレス(DION、ロリポップ、infoseek)、などでは 普通のテキストメールとしてソースが出てしまいます。 他にも何かヘッダーに付加したほうがいいのでしょうか? コツがありましたらご教授ください。 よろしくお願い致します。 <?php /* 送信先 */ $to = "hoge@hoge.com"; /* 題名 */ $subject = "HTML MAIL"; /* メッセージ */ $message = ' <html> <head> <title>テスト</title> </head> <body> <h1>テスト</h1> </body> </html> '; /* ヘッダー */ $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-2022-jp\r\n"; $headers .= "Content-Transfer-Encoding: 7bit\r\n"; $headers .= "From: hoge@hoge.com\r\n"; mail($to, $subject, $message, $headers); ?>

    • 締切済み
    • PHP
  • fputsで改行できない

    $construction='aaa'; $explanation='bbb'; define(DATA, './data'); $fp = fopen(DATA . '/' . $name, 'w') or die('ファイルを開けません'); flock($fp, LOCK_EX); fputs($fp, $construction . "\\r\\n" . $explanation) or die ('ファイルに書き込めません'); fclose($fp); 作成されたファイルを開いてみると aaa\r\nbbbと表示され、改行されません。 "\\r\\n"ではなく"\\n"のみにしても同様です。 二十引用符にしているのに、改行されません。 fputsに複数の変数を同時に入れ、それぞれの間に改行をいれるにはどうすればよいでしょうか? 文字コードはShift-JISです。 ご教示頂けると幸いです。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • Perlの改行で、

    Perlの改行で、 print <<HTML; この場合は、ここを自由に改行出来ると思いますが、 HTML print "Content-type: text/html\n\n"; &aaa ("<p style='color:#eee'>色</p>~~~~~~~~"); &aaa ("~~~"); を使う場合、~~~の部分がとても長くなるときに、 テキスト内で改行する場合、自由に改行を入れても良いでしょうか? どうやれば良いのでしょうか?

    • ベストアンサー
    • Perl
  • [iPhone]改行をファイル出力する方法

    [iPhone]改行をファイル出力する方法 改行を含む文字列をファイル出力するにはどうするといいのでしょうか。 ファイル出力をNSString→NSData経由で行なっていますが、改行コード(\n)が改行されず、文字として'\n'が出力されてしまいます。 現在のコードは ------------- NSMutableString* mstr = [[NSAutoreleasePool alloc] init]; for (int i=0; i<3; i++) { NSString* str = [NSString stringWithFormat:@"%@,%@\n",@"aaa", @"bbb"]; [mstr appendString:str]; } NSData* out_data = [mstr dataUsingEncoding:NSUTF8StringEncoding]; [out_data writeToFile:@"/user/test.csv" atomically:YES]; [ファイルの内容] aaa,bbb\naaa,bbb\naaa,bbb\n ------------- '\n'を'\r'や'\n\r'にしても、改行されません。 どの様にコーディングするとよいのでしょうか、宜しくお願いします。

  • PCからデコメ送信

    初心者です、よろしくお願いします。 PCから携帯にデコメールを送ろうとしているのですが、HTMLメール自体は送れるのですが、画像をインラインで表示したい時の記述がわかりません。 <?php /* 送信先 */ $to = "hoge@hoge.com"; /* 題名 */ $subject = "HTML MAIL"; /* メッセージ */ $message = ' <html> <head> <title>テスト</title> </head> <body> <h1>テスト</h1> </body> </html> '; /* ヘッダー */ $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-2022-jp\r\n"; $headers .= "Content-Transfer-Encoding: 7bit\r\n"; $headers .= "From: hoge@hoge.com\r\n"; mail($to, $subject, $message, $headers); ?> 過去の質問にあったソースを参考にして、色々と試したり、docomoのサイトを見たりしたのですが、まったくわかりません。 boundaryの指定や、content-typeをmultipart/relatedにしなくてはいけない等、疑問に思う事はあるのですが、どうしていいかがよくわかりません。 未熟者なので、ご助力よろしくお願いします。

    • 締切済み
    • PHP
  • PHPのmail関数で送信者を設定できません

    // 表題 $subject = $_POST['news_title']; // 本文 $message = ' <html> <head> <title>'.$_POST['news_title'].'</title> </head> <body> '.$_POST['textarea_id'].' </body> </html> '; // HTML メールを送信するには Content-type ヘッダが必須 $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; // 追加のヘッダ $headers .= 'To: '.$user_name.'<'.$email.'>'. "\r\n"; //$headers .= $_POST['news_title'] . "\r\n"; $headers .= 'From: 姓名 <myname@mymail.com>' . "\r\n"; // 送信する if(mail($to, $subject, $message, $headers)){$mes .= $email.'にメールを送信しました。 ';}else{$mes .= $email.'にメールを送信する際にエラーが発生しました。 ';} (後略) のようなコードになっていますが。$headersでFrom:を設定したのに、受信するメールには、送信者として、なになに@box450.bluehost.comが表示されます。どうやって正しく送信者を設定できるのでしょうか 因みにapacheのhttpd.confやPHPのphp.iniを変更できません。 わかる方がいらっしゃいましたら、ご回答をよろしくお願いします。

    • ベストアンサー
    • PHP
  • HTMLメールを送信するには

    PHPからHTMLメールを送信する際の追加ヘッダーに書くべき内容について教えてください。 $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; multipart/alternative; charset=Shift_JIS\r\n"; mail($to, $subject, $message, $headers); として発信してますが 一部の受信側でTXTに化けてしまいます。 どなたか、HTMLメールの追加ヘッダーの書き方を教えていただきたいのですがよろしくお願いいたします。 5/11 usagi_024

    • 締切済み
    • PHP
  • アクセスからのメール送信

    現状下記のプログラムでアクセスのレポートをメールで送っています。 ToとCCにあたるところですが時々変更になるのでできればフォーム上のテキストボックスから取得したいのですができるのでしょうか。 下記のaaa@bbb.comとccc@ddd.comのところをフォーム上のテキストボックスから取得したいのです。宜しくお願い致します。 DoCmd.SendObject acSendReport, _ "rptABC", _ "PDFFormat(*.pdf)", _ " aaa@bbb.com", _ " ccc@ddd.com", _ "", _ " ABC", _ "ABC"