Exemplo n.º 1
0
 public function send(&$data)
 {
     if (empty($data) || !is_array($data)) {
         return;
     }
     $Setting = D('Setting');
     $settings = $Setting->getSettings();
     $from = $settings['EMAIL_from'];
     require_once 'class.phpmailer.php';
     try {
         $mail = new PHPMailer(true);
         //New instance, with exceptions enabled
         $mail->CharSet = 'UTF-8';
         //设置邮件的字符编码,这很重要,不然中文乱码
         if ($settings['EMAIL_smtp_enable']) {
             $mail->IsSMTP();
             $mail->SMTPAuth = $settings['EMAIL_smtp_auth'] == 1;
             $mail->Port = $settings['EMAIL_smtp_port'];
             $mail->Host = $settings['EMAIL_smtp_host'];
             $mail->Username = $settings['EMAIL_smtp_username'];
             $mail->Password = $settings['EMAIL_smtp_password'];
             $from = empty($from) ? $settings['EMAIL_smtp_username'] : $from;
         }
         $mail->AddReplyTo($from, "定位监控系统");
         $mail->From = $from;
         $mail->FromName = "定位监控系统";
         foreach ($data as $value) {
             if (is_email_well_form($value['email'])) {
                 $mail->AddAddress($value['email']);
             }
         }
         $mail->Subject = $value['title'];
         $mail->AltBody = $value['content'];
         $mail->MsgHTML($value['content']);
         $mail->WordWrap = 80;
         // set word wrap
         $mail->IsHTML(true);
         // send as HTML
         $mail->Send();
         foreach ($data as $key => $value) {
             $data[$key]['success'] = '1';
             $data[$key]['error_msg'] = '';
         }
     } catch (phpmailerException $e) {
         foreach ($data as $key => $value) {
             $data[$key]['success'] = '0';
             $data[$key]['error_msg'] = $e->errorMessage();
         }
     }
     $this->log($data);
 }
Exemplo n.º 2
0
 public function emailtest()
 {
     $email = $_POST['email'];
     if (empty($email)) {
         return_value_json(false, 'msg', '电子邮件地址不能为空');
     }
     if (!is_email_well_form($email)) {
         return_value_json(false, 'msg', '电子邮件地址不正确');
     }
     $user = session('user');
     if (empty($user) || empty($user['userId'])) {
         return_value_json(false, 'msg', '测试电子邮件发送必须为登陆用户');
     }
     $data = array(array('type' => '测试', 'related_id' => 0, 'user_id' => $user['userId'], 'email' => $email, 'title' => '邮件测试', 'content' => '这是一个用于测试邮件发送是否成功的邮件,不需要回复。', 'send_time' => date('Y-m-d H:i:s')));
     $Email = D('Email');
     check_error($Email);
     $Email->send($data);
     if ($data[0]['success']) {
         return_value_json(true);
     } else {
         return_value_json(false, 'msg', $data[0]['error_msg']);
     }
 }
Exemplo n.º 3
0
 /**
  * 根据$rule设置发送报警email给$receivers
  */
 private function _send_alarm_email($alarm, $rule, $receivers)
 {
     $content = str_replace('{时间}', $alarm['start_time'], $rule['email_text']);
     $content = str_replace('{消息}', $alarm['msg'], $content);
     $email = array('type' => '报警', 'related_id' => $alarm['id'], 'content' => $content, 'title' => '报警邮件', 'send_time' => date('Y-m-d H:i:s'));
     $emails = array();
     $emailData = array();
     foreach ($receivers as $key => $receiver) {
         $rcv = array('user_id' => $receiver['receiver_id'], 'email' => $receiver['email']);
         if (is_email_well_form($receiver['email'])) {
             $emails[] = $receiver['email'];
             $emailData[] = array_merge($email, $rcv);
         } else {
             $emailData[] = array_merge($email, $rcv, array('success' => 0, 'result' => '电子邮件地址格式不正确,所以没有发送电子邮件'));
         }
     }
     $Email = D('Email');
     check_error($Email);
     if (empty($emails)) {
         if (!empty($emailData)) {
             $Email->log($emailData);
         }
         return;
     } else {
         $Email->send($emailData);
     }
 }