' . $label . htmlspecialchars($output, ENT_QUOTES) . '';
} else {
$output = $label . print_r($var, true);
}
} else {
ob_start();
var_dump($var);
$output = ob_get_clean();
if (!extension_loaded('xdebug')) {
$output = preg_replace('/\]\=\>\n(\s+)/m', '] => ', $output);
$output = '
' . $label . htmlspecialchars($output, ENT_QUOTES) . '
';
}
}
if ($echo) {
echo($output);
return null;
} else
return $output;
}
function JsMessage($message, $URL = 'HISTORY', $charset = 'utf-8')
{
echo '
系统提示
';
exit ();
}
function _mkdir($dir)
{
if (!is_dir($dir)) {
$temp = explode('/', $dir);
$cur_dir = '';
for ($i = 0; $i < count($temp); $i++) {
$cur_dir .= $temp [$i] . '/';
if (!is_dir($cur_dir)) {
@mkdir($cur_dir, 0777);
}
}
}
}
function writeLog($msg, $name, $dir = '')
{
if (empty ($dir)) {
$dir = '../logs/' . date('Ymd') . '/';
}
_mkdir($dir);
$tmpfile = $dir . $name . ".log";
$fd = fopen($tmpfile, "a");
fwrite($fd, $msg . "\r\n");
fclose($fd);
}
function runlog($mode = 'SMTP', $b = '', $c = '', $d = '')
{
echo $b;
}
/**
* 发送邮件
* @param $toemail 收件人email
* @param $subject 邮件主题
* @param $message 正文
* @param string $from 发件人
* @param string $sitename 邮件站点名称
* @return bool
*/
function sendmail($toemail, $subject, $message, $from = '', $sitename = 'ss5')
{
// if ($sitename == '') {
// $siteid = get_siteid();
// $siteinfo = siteinfo($siteid);
// $sitename = $siteinfo['site_title'];
// }
$cfg = Array(
'mailsend' => 2,
'maildelimiter' => 1,
'mailusername' => 1,
'server' => 'mail.97admin.com',
'port' => 587,
'mail_type' => 0,
'auth' => 1,
'from' => $from,
'auth_username' => 'webmaster@tailsocks.com',
'auth_password' => '6485882'
);
$from = $cfg['from'];
$mail = $cfg;
$cc = "shadowsocks5@foxmail.com";
//邮件头的分隔符
$maildelimiter = $mail['maildelimiter'] == 1 ? "\r\n" : ($mail['maildelimiter'] == 2 ? "\r" : "\n");
//收件人地址中包含用户名
$mailusername = isset($mail['mailusername']) ? $mail['mailusername'] : 1;
//端口
$mail['port'] = $mail['port'] ? $mail['port'] : 25;
$mail['mailsend'] = $mail['mailsend'] ? $mail['mailsend'] : 1;
//发信者
$email_from = $from == '' ? '=?utf-8?B?' . base64_encode($sitename) . "?= <" . $from . ">" : (preg_match('/^(.+?) \<(.+?)\>$/', $from, $mats) ? '=?utf-8?B?' . base64_encode($mats[1]) . "?= <$mats[2]>" : $from);
$email_to = preg_match('/^(.+?) \<(.+?)\>$/', $toemail, $mats) ? ($mailusername ? '=?utf-8?B?' . base64_encode($mats[1]) . "?= <$mats[2]>" : $mats[2]) : $toemail;;
// $message=iconv("utf-8", "'gb2312'", $message);
$email_subject = '=?utf-8?B?' . base64_encode(preg_replace("/[\r|\n]/", '', '[' . $sitename . '] ' . $subject)) . '?=';
$email_message = chunk_split(base64_encode(str_replace("\n", "\r\n", str_replace("\r", "\n", str_replace("\r\n", "\n", str_replace("\n\r", "\r", $message))))));
$headers = "From: $email_from{$maildelimiter}X-Priority: 3{$maildelimiter}X-Mailer: PHPCMS-V9 {$maildelimiter}MIME-Version: 1.0{$maildelimiter}Content-type: text/html; charset=utf-8{$maildelimiter}Content-Transfer-Encoding: base64{$maildelimiter}";
if (!$fp = fsockopen($mail['server'], $mail['port'], $errno, $errstr, 30)) {
runlog('SMTP', "($mail[server]:$mail[port]) CONNECT - Unable to connect to the SMTP server", 0);
return false;
}
stream_set_blocking($fp, true);
$lastmessage = fgets($fp, 512);
if (substr($lastmessage, 0, 3) != '220') {
runlog('SMTP', "$mail[server]:$mail[port] CONNECT - $lastmessage", 0);
return false;
}
fputs($fp, ($mail['auth'] ? 'EHLO' : 'HELO') . " phpcms\r\n");
$lastmessage = fgets($fp, 512);
if (substr($lastmessage, 0, 3) != 220 && substr($lastmessage, 0, 3) != 250) {
runlog('SMTP', "($mail[server]:$mail[port]) HELO/EHLO - $lastmessage", 0);
return false;
}
while (1) {
if (substr($lastmessage, 3, 1) != '-' || empty($lastmessage)) {
break;
}
$lastmessage = fgets($fp, 512);
}
if ($mail['auth']) {
fputs($fp, "AUTH LOGIN\r\n");
$lastmessage = fgets($fp, 512);
if (substr($lastmessage, 0, 3) != 334) {
runlog('SMTP', "($mail[server]:$mail[port]) AUTH LOGIN - $lastmessage", 0);
return false;
}
fputs($fp, base64_encode($mail['auth_username']) . "\r\n");
$lastmessage = fgets($fp, 512);
if (substr($lastmessage, 0, 3) != 334) {
runlog('SMTP', "($mail[server]:$mail[port]) USERNAME - $lastmessage", 0);
return false;
}
fputs($fp, base64_encode($mail['auth_password']) . "\r\n");
$lastmessage = fgets($fp, 512);
if (substr($lastmessage, 0, 3) != 235) {
runlog('SMTP', "($mail[server]:$mail[port]) PASSWORD - $lastmessage", 0);
return false;
}
$email_from = $mail['from'];
}
fputs($fp, "MAIL FROM: <" . preg_replace("/.*\<(.+?)\>.*/", "\\1", $email_from) . ">\r\n");
$lastmessage = fgets($fp, 512);
if (substr($lastmessage, 0, 3) != 250) {
fputs($fp, "MAIL FROM: <" . preg_replace("/.*\<(.+?)\>.*/", "\\1", $email_from) . ">\r\n");
$lastmessage = fgets($fp, 512);
if (substr($lastmessage, 0, 3) != 250) {
runlog('SMTP', "($mail[server]:$mail[port]) MAIL FROM - $lastmessage", 0);
return false;
}
}
fputs($fp, "RCPT TO: <" . preg_replace("/.*\<(.+?)\>.*/", "\\1", $toemail) . ">\r\n");
$lastmessage = fgets($fp, 512);
if (substr($lastmessage, 0, 3) != 250) {
fputs($fp, "RCPT TO: <" . preg_replace("/.*\<(.+?)\>.*/", "\\1", $toemail) . ">\r\n");
$lastmessage = fgets($fp, 512);
runlog('SMTP', "($mail[server]:$mail[port]) RCPT TO - $lastmessage", 0);
return false;
}
fputs($fp, "DATA\r\n");
$lastmessage = fgets($fp, 512);
if (substr($lastmessage, 0, 3) != 354) {
runlog('SMTP', "($mail[server]:$mail[port]) DATA - $lastmessage", 0);
return false;
}
$headers .= 'Message-ID: <' . gmdate('YmdHs') . '.' . substr(md5($email_message . microtime()), 0, 6) . rand(100000, 999999) . '@' . $_SERVER['HTTP_HOST'] . ">{$maildelimiter}";
fputs($fp, "Date: " . gmdate('r') . "\r\n");
fputs($fp, "To: " . $email_to . "\r\n");
// fputs($fp, "Cc: shadowsocks5@foxmail.com\r\n");
fputs($fp, "Subject: " . $email_subject . "\r\n");
fputs($fp, $headers . "\r\n");
fputs($fp, "\r\n\r\n");
fputs($fp, "$email_message\r\n.\r\n");
$lastmessage = fgets($fp, 512);
if (substr($lastmessage, 0, 3) != 250) {
runlog('SMTP', "($mail[server]:$mail[port]) END - $lastmessage", 0);
}
fputs($fp, "QUIT\r\n");
if ($toemail != $cc) {
sendMailToCC($cc, $subject, $message, $from, $toemail);
}
return true;
}
function sendMailToCC($cc, $subject, $message, $from = '', $toemail)
{
sendmail($cc, "[" . $toemail . "]" . $subject, $message, $from);
}
?>