function RemoveFiles($source) { $folder = opendir($source); while ($file = readdir($folder)) { if ($file == '.' || $file == '..') { continue; } if (is_dir($source . '/' . $file)) { RemoveFiles($source . '/' . $file); } else { unlink($source . '/' . $file); } } closedir($folder); rmdir($source); return 1; }
function zeromailAjax_send($formitem) { global $inputs, $endMassage, $replyfoot, $replycomment; ip_check_destroy(); //ユーザー情報 $user_ip = $_SERVER['REMOTE_ADDR']; $user_host = @gethostbyaddr($_SERVER['REMOTE_ADDR']); $user_agent = $_SERVER['HTTP_USER_AGENT']; $user = "******" . date("Y/m/d - H:i:s") . "\n"; $user .= "IP: " . $user_ip . "\n"; $user .= "HOST: " . $user_host . "\n"; $user .= "USER AGENT: " . $user_agent . "\n"; $copy = SCRIPT . "[http://zeromail.webtecnote.com/]"; if (is_admin()) { $csv = '"' . date("Y/m/d H:i:s") . '"'; } $mailsubject = MAILSUBJECT; //本文スタイル $message = "\n────────────────────────────────────"; foreach ($inputs as $key => $value) { $formitem[$key] = mb_convert_encoding($formitem[$key], "UTF-8", TEXTCODE); if (strpos($formitem[$key], 'zmPreview') !== FALSE) { $formitem[$key] = preg_replace('/\\s*<a[^>]+ class="zmPreview">ファイルの確認<\\/a>/i', "", $formitem[$key]); } if (NOSCRIPT === false) { $formitem[$key] = zeromail_regtag_replace($formitem, $key); } $mailsubject = convert_tag($key, $formitem[$key], $mailsubject); if (is_admin()) { $csv .= ',"' . str_replace(array("\n", "\r", "\r\n"), "", $formitem[$key]) . '"'; } if (is_empty_skip($formitem[$key])) { continue; } //empty value skip $message .= "\n■{$value}\n"; $message .= $formitem[$key] . "\n"; } $message .= "────────────────────────────────────\n"; $message .= "□ユーザー情報\n"; $message .= $user . "\n"; $message .= "────────────────────────────────────\n"; $message .= $copy; if (is_admin()) { $csv .= ',"' . $user_ip . '","' . $user_host . '","' . $user_agent . '"' . "\n"; } //本文整形 if (strpos(PHPVER, '5') === false) { $message = unhtmlentities($message); } else { $message = html_entity_decode($message, ENT_QUOTES, 'UTF-8'); } $message = $mailsubject . str_replace(array("\r", "\r\n"), "", str_replace("<br />", "", $message)); $name = isset($formitem["name"]) ? $formitem["name"] : SCRIPT; //添付ファイルなし(POOLあり) if (FILETEMP === false || FILETEMP === true && FILEPOOL === true || FILETEMP === true && $formitem["FILETEMP"] !== true) { $mailheader = "From: " . get_mailfrom($name, $formitem['email']) . "\r\n"; if (BCC != "") { $mailheader .= "Bcc: " . BCC . "\r\n"; } $mailheader .= "X-Mailer: " . SCRIPT . "(Version " . VERSION . ")\r\n"; @mb_send_mail(MAILTO, $mailsubject, $message, $mailheader); //添付ファイルあり(POOLなし) } elseif (FILEPOOL === false && FILETEMP === true && $formitem["FILETEMP"] === true) { $boundary = "zeromail" . md5(uniqid(rand())); //バウンダリー $mailfrom2 = get_mailfrom($name, $formitem['email']); $mailheader = "From: " . $mailfrom2 . "\r\n"; if (BCC != "") { $mailheader .= "Bcc: " . BCC . "\r\n"; } $mailheader .= "X-Mailer: " . SCRIPT . "(Version " . VERSION . ")\r\n"; $mailheader .= "MIME-version: 1.0\r\n"; $mailheader .= "Content-Type: multipart/mixed;"; $mailheader .= " boundary=" . $boundary . "\r\n"; $msg = "--" . $boundary . "\r\n"; $mailcode = MAILCODE === 'ja' ? 'ISO-2022-JP' : 'UTF-8'; $encbit = MAILCODE === 'ja' ? '7bit' : 'base64'; $msg .= "Content-type: text/plain; charset={$mailcode}\r\n"; $msg .= "Content-transfer-encoding: {$encbit}\r\n"; if (MAILCODE === 'ja') { $message = mb_convert_encoding($message, $mailcode, 'UTF-8'); } $msg .= chunk_split(base64_encode($message)); foreach ($formitem["FILES"] as $i => $tmp) { $fp = @fopen(ZEROMAIL_DIR . UPLOADPASS . $tmp["filename"], "r"); //ファイルの読み込み $contents = @fread($fp, @filesize(ZEROMAIL_DIR . UPLOADPASS . $tmp["filename"])); @fclose($fp); $encoded = chunk_split(base64_encode($contents)); //エンコード $msg .= "\r\n--" . $boundary . "\r\n"; $msg .= "Content-Type: " . $tmp["type"] . ";\r\n"; $msg .= "\tname=\"" . $tmp["filename"] . "\"\r\n"; $msg .= "Content-Transfer-Encoding: base64\r\n"; $msg .= "Content-Disposition: attachment;\r\n"; $msg .= "\tfilename=\"" . $tmp["filename"] . "\"\r\n"; $msg .= $encoded . "\r\n"; } RemoveFiles(ZEROMAIL_DIR . UPLOADPASS); //ファイル削除 $msg .= "--" . $boundary . "--"; $subject = zm_encode_mimeheader($mailsubject); @mail(MAILTO, $subject, $msg, $mailheader); } //メール自動返信 if (($formitem['reply'] === "true" || REPLY === true) && $formitem['email'] != "") { $replyheader = "From: \"" . zm_encode_mimeheader(FROMNAME) . "\" <" . MAILTO . ">\r\n"; if (BCC != "") { $replyheader .= "Bcc: " . BCC . "\r\n"; } $replyheader .= "X-Mailer: " . SCRIPT . "(Version " . VERSION . ")\r\n"; //自動返信本文スタイル $replymessage = ''; foreach ($inputs as $key => $value) { $replycomment = convert_tag($key, $formitem[$key], $replycomment); $replyfoot = convert_tag($key, $formitem[$key], $replyfoot); if (is_empty_skip($formitem[$key])) { continue; } //empty value skip $replymessage .= "\n■{$value}\n"; $replymessage .= $formitem[$key] . "\n"; } $replymessage = $replycomment . $replymessage; $replymessage .= $replyfoot; //自動返信本文整形 if (strpos(PHPVER, '5') === false) { $replymessage = unhtmlentities($replymessage); } else { $replymessage = html_entity_decode($replymessage, ENT_QUOTES, 'UTF-8'); } $replymessage = str_replace("\r", "", str_replace("<br />", "", $replymessage)); @mb_send_mail($formitem['email'], REPSUBJECT, $replymessage, $replyheader); } if (is_admin()) { zeromail_data_put_csv($csv); } //CSV保存 session_destroy(); if (NOSCRIPT === false) { print $endMassage; } else { header('Location: ' . SUCCESSPAGE); } }