if (gcms::isAdmin()) { $sender = $db->getRec(DB_USER, $_POST['email_from']); } else { $sender = $_SESSION['login']; } // ตรวจสอบค่าที่ส่งมา if ($sender['email'] == '') { $ret['error'] = 'ACTION_ERROR'; } elseif ($reciever == '') { $ret['error'] = 'RECIEVER_EMPTY'; $ret['input'] = 'email_reciever'; } elseif ($sender == $reciever) { $ret['error'] = 'ACTION_ERROR'; } elseif ($topic == '') { $ret['error'] = 'TOPIC_EMPTY'; $ret['input'] = 'email_subject'; } elseif ($detail == '') { $ret['error'] = 'DETAIL_EMPTY'; } else { $error = gcms::customMail($reciever, "{$sender['email']}<{$sender['displayname']}>", $topic, $detail); if ($error == '') { $ret['error'] = 'EMAIL_SEND_SUCCESS'; $ret['location'] = 'back'; } else { $ret['alert'] = rawurlencode($error); } } } // คืนค่าเป็น JSON echo gcms::array2json($ret); }
/** * ฟังก์ชั่นส่งเมล์จากแม่แบบจดหมาย * * @global resource $db database resource * @global array $config ตัวแปรเก็บการตั้งค่าของ GCMS * @global int $mmktime เวลาปัจจุบัน (mktime) * @param int $id ID ของจดหมายที่ต้องการส่ง * @param string $module ชื่อโมดูลของจดหมายที่ต้องการส่ง * @param array $datas ข้อมูลที่จะถูกแทนที่ลงในจดหมาย ในรูป 'ตัวแปร'=>'ข้อความ' * @param string $to ที่อยู่อีเมล์ผู้รับ คั่นแต่ละรายชื่อด้วย , * @return string สำเร็จคืนค่าว่าง ไม่สำเร็จ คืนค่าข้อความผิดพลาด */ public static function sendMail($id, $module, $datas, $to) { global $db, $config, $mmktime; $sql = "SELECT * FROM `" . DB_EMAIL_TEMPLATE . "`"; $sql .= " WHERE `module`='{$module}' AND `email_id`='{$id}' AND `language` IN ('" . LANGUAGE . "','th')"; $sql .= " LIMIT 1"; $email = $db->customQuery($sql); if (sizeof($email) == 0) { return 'Error : email template not found.'; } else { $email = $email[0]; // ข้อความในอีเมล์ $replace = array(); $replace['/%WEBTITLE%/'] = strip_tags($config['web_title']); $replace['/%WEBURL%/'] = WEB_URL; $replace['/%EMAIL%/'] = $to; $replace['/%ADMINEMAIL%/'] = empty($email['from_email']) ? $config['noreply_email'] : $email['from_email']; $replace['/%TIME%/'] = gcms::mktime2date($mmktime); $replace = array_merge($replace, $datas); $patt = array_keys($replace); $replace = array_values($replace); $msg = preg_replace($patt, $replace, $email['detail']); $subject = preg_replace($patt, $replace, $email['subject']); // ส่งอีเมล์ return gcms::customMail($to . (!empty($email['copy_to']) ? ",{$email['copy_to']}" : ''), $email['from_email'], $subject, $msg); } }
$ret['error'] = 'ACTION_ERROR'; $ret['input'] = 'mail_reciever'; } elseif ($sender == $reciever) { $ret['error'] = 'EMAIL_SEND_SELF'; $ret['input'] = 'mail_sender'; } elseif ($topic == '') { $ret['error'] = 'TOPIC_EMPTY'; $ret['input'] = 'mail_topic'; } elseif ($detail == '') { $ret['error'] = 'DETAIL_EMPTY'; } elseif ($_POST['mail_antispam'] != $_SESSION[$_POST['antispam']]) { $ret['ret_mail_antispam'] = 'this'; $ret['input'] = 'mail_antispam'; } else { // ส่งอีเมล์ $error = gcms::customMail($reciever, $sender, $topic, $detail); // clear antispam unset($_SESSION['emails']); unset($_SESSION[$_POST['antispam']]); // คืนค่า if ($error == '') { $ret['error'] = 'EMAIL_SEND_SUCCESS'; $ret['location'] = 'back'; } else { $ret['alert'] = rawurlencode($error); } } } // คืนค่าเป็น JSON echo gcms::array2json($ret); }
} elseif (!gcms::validMail($sender['email'])) { $ret['error'] = 'REGISTER_INVALID_EMAIL'; $ret['input'] = 'mail_sender'; } elseif (sizeof($emails) == 0) { $ret['error'] = 'EMAIL_RECIEVER_NOT_FOUND'; } elseif ($topic == '') { $ret['error'] = 'TOPIC_EMPTY'; $ret['input'] = 'mail_topic'; } elseif ($detail == '') { $ret['error'] = 'DETAIL_EMPTY'; } elseif ($_POST['mail_antispam'] != $_SESSION[$_POST['antispam']]) { $ret['ret_mail_antispam'] = 'this'; $ret['input'] = 'mail_antispam'; } else { // ส่งอีเมล์ $error = gcms::customMail(implode(',', $emails), "{$sender['email']}<{$sender['displayname']}>", $topic, $detail); // clear antispam unset($_SESSION['emails']); unset($_SESSION[$_POST['antispam']]); // คืนค่า if ($error == '') { $ret['error'] = 'EMAIL_SEND_SUCCESS'; $ret['location'] = 'back'; } else { $ret['alert'] = rawurlencode($error); } } } } // คืนค่าเป็น JSON echo gcms::array2json($ret);