または
を \n に戻してからセットして下さい。
☆例: $data['comment'] = preg_replace("/
/i","\n", $comment);
【使用例】※実際には変数を使うが、判り易くする為に直接内容をセットしています
$data['to'] = 'me@hoge.net';
$data['subject'] = 'なんか投稿されてますよー';
$data['name'] = '名無しさん';
$data['email'] = 'hoge@hoge.com';
$data['option'][] = 'URL,http://hogehoge.com/';
$data['option'][] = 'お絵かき絵,http://hoge.net/poti/src/OB11111111.png';
$data['comment'] = 'お絵かきしたにゃ';
noticemail::send($data);
【ご注意】
・sendmail などの MTA がインストール・設定されていないと使えません。
・データチェックはしていますが、エラーメッセージは出してません。
・万が一、このスクリプトにより何らかの損害が発生しても、その責任を私は負いません。
自己の責任で利用して下さい。
・著作権は放棄しませんが、改造・再配布は自由にどうぞ。
・ご質問は、までどうぞ。
*/
class noticemail{
public static function send($data,$usemb="1"){
$name = $data['name'];
$from = $data['email'];
$line = "---------------------------------------------------------------------\n";
// ヘッダを指定
$MailHeaders = "Mime-Version: 1.0\n";
$MailHeaders .= "Content-Type: text/plain; charset=ISO-2022-JP\n";
$MailHeaders .= "Content-Transfer-Encoding: 7bit\n";
$MailHeaders .= "X-Mailer: NoticeMail/PHP".phpversion()."\n";
// メール本文作成
$Message = "■".$data['subject']."\n";
$Message .= "Date: ".gmdate("Y/m/d H:i:s",time()+9*3600)."\n";
$Message .= "Host: ".@gethostbyaddr(getenv("REMOTE_ADDR"))."\n";
$Message .= "UserAgent: ".getenv("HTTP_USER_AGENT")."\n";
$Message .= $line;
$Message .= "Name: ".$name."\n";
$Message .= "e-Mail: ".$data['email']."\n";
$option = $data['option'];
if(is_array($option)){
for($i = 0; $i < count($option); $i++){
list($optitle,$opvalue) = explode(",", rtrim($option[$i]));
$Message .= $optitle.": ".$opvalue."\n";
}
}
$Message .= $line;
if($data['comment']){
$com = str_replace("\r\n", "\n", $data['comment']); // 改行文字の統一
$com = str_replace("\r", "\n", $com);
$com = preg_replace("/^(\n)+|(\n)+$/", "", $com); // 連続改行を消す
$Message .= $com;
}
if(get_magic_quotes_gpc()){ // \は取る
$Message = stripslashes($Message);
$name = stripslashes($name);
$from = stripslashes($from);
}
$Message = str_replace("\n", "\r\n", $Message); // 改行文字の統一
// 漢字変換&送信
if(function_exists("mb_internal_encoding")&&function_exists("mb_convert_encoding")&&function_exists("mb_convert_kana")
&&$usemb){
mb_internal_encoding("EUC-JP");
// 半角対応
$Message = mb_convert_kana($Message);
$name = mb_convert_kana($name);
$from = mb_convert_kana($from);
// 明らかにメールアドレスじゃない物は除外
if(preg_match("/[\x80-\xA0]/",$from)||stristr($from,'sage')||stristr($from,'http://')) $from = '';
// メールアドレスがなければ代替え
if(!$from) $from = 'nomail@'.getenv("HTTP_HOST");
// 日本語ならMIMEヘッド
if(preg_match("/[\x80-\xA0]/",$name)){
$name = "=?iso-2022-jp?B?".base64_encode(mb_convert_encoding($name,"JIS","auto"))."?=";
}
// ヘッダにFrom追加
$MailHeaders .= "From: ".$name." <".$from.">\n";
$MailHeaders = str_replace("\n", "\r\n", $MailHeaders); // 改行文字の統一
// Subjectに日本語があればMIMEヘッド
if(preg_match("/[\x80-\xA0]/",$data['subject'])){
$data['subject'] = "=?iso-2022-jp?B?".base64_encode(mb_convert_encoding($data['subject'],"JIS","auto"))."?=";
}
// メール送信
mail($data['to'],
$data['subject'],
mb_convert_encoding($Message,"JIS","auto"), $MailHeaders);
}elseif(@file_exists("jcode.phps")||@file_exists("jcode.php")){
if(@file_exists("jcode.phps")){ require_once('jcode.phps'); }
else{ require_once('jcode.php'); }
// 半角対応
$Message = HANtoZEN($Message,1);
$name = HANtoZEN($name,1);
$from = HANtoZEN($from,1);
// 明らかにメールアドレスじゃない物は除外
if(preg_match("/[\x80-\xA0]/",$from)||stristr($from,'sage')||stristr($from,'http://')) $from = '';
// メールアドレスがなければ代替え
if(!$from) $from = 'nomail@'.getenv("HTTP_HOST");
// 日本語ならMIMEヘッド
if(preg_match("/[\x80-\xA0]/",$name)){
$name = "=?iso-2022-jp?B?".base64_encode(JcodeConvert($name,0,3))."?=";
}
// ヘッダにFrom追加
$MailHeaders .= "From: ".$name." <".$from.">\n";
$MailHeaders = str_replace("\n", "\r\n", $MailHeaders); // 改行文字の統一
// Subjectに日本語があればMIMEヘッド
if(preg_match("/[\x80-\xA0]/",$data['subject'])){
$data['subject'] = "=?iso-2022-jp?B?".base64_encode(JcodeConvert($data['subject'],0,3))."?=";
}
// メール送信
mail($data['to'],
$data['subject'],
JcodeConvert($Message,0,3), $MailHeaders);
}else{ return false; }
return true;
}
}
?>