function send_mail($to, $subject, $message, $from = '', $encoding = 'gbk') { global $mailcfg; // Default sender/return address if (!$from) { $from = SYSTEM_NAME . '<' . $mailcfg['username'] . '>'; } $type = $mailcfg['type'] == 'HTML' ? 'text/html' : 'text/plain'; // Do a little spring cleaning $to = trim(preg_replace('#[\\n\\r]+#s', '', $to)); $subject = mb_convert_encoding(trim(preg_replace('#[\\n\\r]+#s', '', $subject)), 'gbk', 'utf-8'); $from = mb_convert_encoding(trim(preg_replace('#[\\n\\r:]+#s', '', $from)), 'gbk', 'utf-8'); $headers = 'From: ' . $from . "\r\n" . 'Date: ' . date('r') . "\r\n" . 'MIME-Version: 1.0' . "\r\n" . 'Content-transfer-encoding: 8bit' . "\r\n" . 'Content-type: ' . $type . '; charset=' . $encoding . "\r\n" . 'X-Mailer: Ecosme-Mailer'; // Make sure all linebreaks are CRLF in message (and strip out any NULL bytes) $message = str_replace(array("\n", ""), array("\r\n", ''), linebreaks($message)); $message = mb_convert_encoding($message, 'gbk', 'utf-8'); if ($mailcfg['server'] != '') { smtp_mail($to, $subject, $message, $headers); } else { // Change the linebreaks used in the headers according to OS if (strtoupper(substr(PHP_OS, 0, 3)) == 'MAC') { $headers = str_replace("\r\n", "\r", $headers); } else { if (strtoupper(substr(PHP_OS, 0, 3)) != 'WIN') { $headers = str_replace("\r\n", "\n", $headers); } } mail($to, $subject, $message, $headers); } }
}); /* * HTML STRINGS */ //stringfilter $lib->filter('escape', function ($value) { return mark_for_escaping($value); }, array('is_safe' => True)); //stringfilter $lib->filter('force_escape', function ($value) { return mark_safe(escape($value)); }, array('is_safe' => True)); //stringfilter $lib->filter('linebreaks', function ($value, $autoescape = null) { $autoescape = $autoescape && !$value instanceof SafeData; return mark_safe(linebreaks($value, $autoescape)); }, array('is_safe' => True, 'needs_autoescape' => True)); //stringfilter $lib->filter('linebreaksbr', function ($value, $autoescape = null) { $autoescape = $autoescape && !$value instanceof SafeData; $value = normalize_newlines($value); if ($autoescape) { $value = escape($value); } return mark_safe(str_replace("\n", '<br />', $value)); }, array('is_safe' => True, 'needs_autoescape' => True)); //stringfilter $lib->filter('safe', function ($value) { return mark_safe($value); }, array('is_safe' => True)); $lib->filter('safeseq', function ($value) {