CMS構築を目的にPHPをベースとしたWordPress、CakePHPやPEARなどオープンソースを中心に解説しています

PHPで関数mb_send_mailを利用してメールを送信する場合に、メール本文に1つの改行が2つと解釈されてメールが送信されるケースがあります。

例えば、以下のような文章をフォームなどで入力します。

こんにちわ
こんばんわ
おはようございます

この内容をmb_send_mailにセットしてメールを送信し、受信側で確認すると以下のように表示されることがあります。

こんにちわ

こんばんわ

おはようございます

改行コードとサーバ環境が絡んだ問題と思われますが。

これまではこのプログラムで問題なかったのに。サーバ環境はどうなってるんだろうか。と深く探る前に。

改行コードは、UNIXは『n』、Windowsは『rn』、Macは『r』となっています。ここで、Macでサーバ運用などほとんどないと思いますので、こういう困った場合にはとりあえず『r』を削除すれば解決することが多いです。

$mail_honbun = ereg_replace("r","",$mail_honbun);
mb_send_mail($mailto,$subject,$mail_honbun,$mailfrom);

雑な説明ですが、サーバ環境を調査するコストに悩む場合は、上記を試してみる価値はあると思います。

このエントリーをはてなブックマークに追加

Comment

Comment Form

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Monthly Archives

Search