Exemple #1
0
 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;
 }
Exemple #2
0
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);
    }
}