| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | 
							- <?php
 
- // idcol 故障信息推送
 
- require_once './DB.php';
 
- date_default_timezone_set('Asia/Shanghai');
 
- $config = [
 
-     'hostname' => 'rm-wz98r5cn33zq4ou980o.mysql.rds.aliyuncs.com',
 
- 	'username' => 'idcol20',
 
- 	'password' => 'idcol@1234',
 
- 	'dbname' => 'idcol',
 
- ];
 
- // 发送邮件
 
- function send_email($to,$msg,$title = '维修通知'){
 
-     // $this->load->library('Smtp');
 
-     require_once './Smtp.php';
 
-     $config = array();
 
-     $config['protocol'] = 'smtp';
 
- 	$config['smtp_host'] = 'smtpdm.aliyun.com';
 
- 	$config['user_email'] = 'admin@lampmind.com';
 
- 	$config['smtp_user'] = 'admin@lampmind.com';
 
- 	$config['smtp_pass'] = 'wecloudsSMTP2018';
 
- 	$config['smtp_port'] = 80;
 
- 	$config['smtp_timeout'] = 30;
 
- 	$config['crlf'] = "\r\n";  
 
- 	$config['newline'] = "\r\n";
 
- 	$config['mailtype'] = "html";
 
-     //******************** 配置信息 ********************************
 
-     // $config = $config['email'];
 
-     $smtpserver = $config['smtp_host'];//SMTP服务器
 
-     $smtpserverport = $config['smtp_port'];//SMTP服务器端口
 
-     $smtpusermail = $config['user_email'];//SMTP服务器的用户邮箱
 
-     $smtpemailto = $to;//发送给谁
 
-     $smtpuser = $config['smtp_user'];//SMTP服务器的用户帐号,注:部分邮箱只需@前面的用户名
 
-     $smtppass = $config['smtp_pass'];//SMTP服务器的用户密码
 
-     $mailtitle = $title;//邮件主题
 
-     $mailcontent = $msg;//邮件内容
 
-     $mailtype = "HTML";//邮件格式(HTML/TXT),TXT为文本邮件
 
-     //************************ 配置信息 ****************************
 
-     $smtp = new Smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证.
 
-     $smtp->debug = false;//是否显示发送的调试信息
 
-     return $smtp->sendmail($smtpemailto, $smtpusermail, $mailtitle, $mailcontent, $mailtype);
 
- }
 
- // 故障信息 
 
- $batstatusArr = array('1'=>'Overdischarge','2'=>'Over Charge','3'=>'High temperature','4'=>'Battery overtemperature');
 
- $panelstatusArr = array('1'=>'Less than the optiocally controlled voltage','2'=>'greate than the optiocally controlled voltage','3'=>'greater than the battery voltage');
 
- $lampstatusArr = array('1'=>'open circuit','2'=>'short circuit','3'=>'overload','4'=>'Lamp overtemperature');
 
- $tempstatusArr = array('1'=>'Charge high temperature','2'=>'Charge over temperature','3'=>'Discharge high temperature','4'=>'Discharge over temperature');
 
- while (1) {
 
- 	$db = new Db($config);
 
- 	$lampList = $db->query('select W.id,W.batstatus,W.panelstatus,W.lampstatus,W.tempstatus,L.projectid,P.projectname,L.number from warning_info_log W left join lampinfo L on W.lampid = L.id left join project P on L.projectid = P.id where W.is_send = 0 and L.id is not null and P.id is not null and W.status = 0');
 
- 	foreach ($lampList as $key => $value) {
 
- 		$userList = $db->query('select email from alarm_send_user_info where is_send = 1 and FIND_IN_SET('.$value['projectid'].',project)');
 
- 		// $msg = "The device located in project:{$value['hotelName']}->number:{$value['buildName']} appears <span style='color:red;'>{$value['stralarmtype']}</span>, please confirm as soon as possible. If repaired, please ignore it! Thank you for your cooperation! [login www.iotena-web.com to see details]";
 
- 		$alarmArr = array();
 
- 		if (!empty($value['batstatus']) && isset($batstatusArr[$value['batstatus']])) $alarmArr[] = $batstatusArr[$value['batstatus']];
 
- 		if (!empty($value['panelstatus']) && isset($panelstatusArr[$value['panelstatus']])) $alarmArr[] = $panelstatusArr[$value['panelstatus']];
 
- 		if (!empty($value['lampstatus']) && isset($lampstatusArr[$value['lampstatus']])) $alarmArr[] = $lampstatusArr[$value['lampstatus']];
 
- 		if (!empty($value['tempstatus']) && isset($tempstatusArr[$value['tempstatus']])) $alarmArr[] = $tempstatusArr[$value['tempstatus']];
 
- 		if (!empty($alarmArr)) {
 
- 			$stralarmtype = implode(',',$alarmArr);
 
- 			$msg = "The device located in project:{$value['projectname']}->number:{$value['number']} appears <span style='color:red;'>{$stralarmtype}</span>, please confirm as soon as possible. If repaired, please ignore it! Thank you for your cooperation!";
 
- 			foreach ($userList as $user) {
 
- 				if (!empty($user['email'])) send_email($user['email'],$msg,'Alarm info');
 
- 			}
 
- 		}
 
- 		$db->table('warning_info_log')->where('id='.$value['id'])->update(['is_send'=>1]);
 
- 	}
 
- 	$db->close();
 
- 	sleep(60);
 
- }
 
- ?>
 
 
  |