<?php
/*
 +----------------------------------------------------------------------
 | TEMMOKUMVC [ NO BEST, ONLY BETTER ]
 +----------------------------------------------------------------------
 | Copyright (c) 2018~2019 https://www.temmoku.cn All rights reserved.
 +----------------------------------------------------------------------
 | Author: 张宗强 Email:webmaster@temmoku.cn QQ:158726877 516669373 TEL:17895221001 微信:temmokumvc
 +---------------------------------------------------------------------- 
*/
namespace temmoku\lib;
use temmoku\db;
class sms {
	
	/*
	 * 站内短信
	 * $from_uid 需要发送者的uid
	 * $to_uid 发送到的用户uid必须
	 * $title 短信标题
	 * $content 短信内容
	 */
	static public function station_message_post($from_uid='0',$to_uid,$title,$content){
		//不存在就是管理发信
		!$from_uid ? $from_username='系统消息' : extract(db::select('username as from_username')->from(jab."user")->where('uid='.$from_uid)->row());
		$arr=[
			'from_uid'=>(int)$from_uid,
			'from_username'=>$from_username,
			'uid'=>(int)$to_uid,
			'title'=>$title,
			'content'=>$content,
			'posttime'=>(int)NOWTIME
		];
		db::query("UPDATE `".jab.'user'."` SET `message_num` = `message_num`+1 WHERE uid=".$to_uid);
		$id=db::insert(jab.'station_message')->cols($arr)->query();
		return $id;
	}
	
	/*
	 * 短信
	 * $phone 手机号码
	 * $text 短信内容
	 * $code为整数，具体查看sms插件下的code.php代码
	 */
	
	static public function short ($mobile,$text,$code){
		
		if(!is_phone($mobile)){
			return ['code'=>'102'];
		}
		
		$plugin_route_file=APP_PATH.'plugin_route.php';
		is_file($plugin_route_file) && extract(include $plugin_route_file);
		if(!in_array('sms',$Plugin_Route)){
			return ['code'=>'10'];
		}else{
			return (new \plugin\sms\public_class\send)->put($mobile,$text,$code);
		}
	}
	
	/*smtp
	 * $to_email 发送到的email
	 * $title 标题
	 * $content 内容
	 * $is_test 为true 则检查设置否
	 */
	 static public function smtp($to_email,$title,$content,$is_test=false){
		if(!C('STMP_SERVER')||!C('STMP_PORT')||!C('STMP_USERNAME')||!C('STMP_PASSWORD')){
			if($is_test){
				(new \temmoku\controller)->err("请先设置邮件服务器");
			}
		}
		vendor('phpmailer.class#phpmailer');
		//实例化PHPMailer核心类
		$mail = new \PHPMailer();
		
		//是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式
		$mail->SMTPDebug = 0;

		//使用smtp鉴权方式发送邮件
		$mail->isSMTP();

		//smtp需要鉴权 这个必须是true
		$mail->SMTPAuth=true;
		
		//链接qq域名邮箱的服务器地址
		$mail->Host = C('STMP_SERVER');

		//设置使用ssl加密方式登录鉴权
		if(C('STMP_PORT') != '25') $mail->SMTPSecure = 'ssl';

		//设置ssl连接smtp服务器的远程服务器端口号，以前的默认是25，但是现在新的好像已经不可用了 可选465或587
		$mail->Port = C('STMP_PORT');

		//设置发件人的主机域 可有可无 默认为localhost 内容任意，建议使用你的域名
		$mail->Hostname = C('WEBURL');

		//设置发送的邮件的编码 可选GB2312 我喜欢utf-8 据说utf8在某些客户端收信下会乱码
		$mail->CharSet = 'utf-8';

		//设置发件人姓名（昵称） 任意内容，显示在收件人邮件的发件人邮箱地址前的发件人姓名
		$mail->FromName = C('WEBNAME');

		//smtp登录的账号 这里填入字符串格式的qq号即可
		$mail->Username =C('STMP_USERNAME');

		//smtp登录的密码 使用生成的授权码（就刚才叫你保存的最新的授权码）
		$mail->Password = C('STMP_PASSWORD');

		//设置发件人邮箱地址 这里填入上述提到的“发件人邮箱”
		$mail->From = C('STMP_USERNAME');
		//邮件正文是否为html编码 注意此处是一个方法 不再是属性 true或false
		$mail->isHTML(true); 

		//设置收件人邮箱地址 该方法有两个参数 第一个参数为收件人邮箱地址 第二参数为给该地址设置的昵称 不同的邮箱系统会自动进行处理变动 这里第二个参数的意义不大
		$mail->addAddress($to_email,'');

		//添加多个收件人 则多次调用方法即可
		// $mail->addAddress('xxx@163.com','lsgo在线通知');

		//添加该邮件的主题
		$mail->Subject = $title;

		//添加邮件正文 上方将isHTML设置成了true，则可以是完整的html字符串 如：使用file_get_contents函数读取本地的html文件
		$mail->Body = $content;

		//为该邮件添加附件 该方法也有两个参数 第一个参数为附件存放的目录（相对目录、或绝对目录均可） 第二参数为在邮件附件中该附件的名称
		// $mail->addAttachment('./d.jpg','mm.jpg');
		//同样该方法可以多次调用 上传多个附件
		// $mail->addAttachment('./Jlib-1.1.0.js','Jlib.js');

		$status = $mail->send();

		
		
		//简单的判断与提示信息
		if($status) {
			return true;
		}else{
			return false;
		}
		
	}
	
}
?>