likang 2 years ago
parent
commit
effeaad8b9
2 changed files with 40 additions and 23 deletions
  1. 11 2
      catch/email/controller/Email.php
  2. 29 21
      catch/email/model/Email.php

+ 11 - 2
catch/email/controller/Email.php

@@ -1,4 +1,12 @@
 <?php
+/*
+ * @Descripttion: 
+ * @version: X3版本
+ * @Author: 吴胭脂
+ * @Date: 2022-06-07 10:16:15
+ * @LastEditors: 吴胭脂
+ * @LastEditTime: 2022-06-08 14:39:21
+ */
 
 namespace catchAdmin\email\controller;
 
@@ -66,13 +74,14 @@ class Email extends CatchController
     {
         return CatchResponse::success($this->emailModel->deleteBy($id));
     }
+   
     /**
-     * 发送邮
+     * 发送邮
      */
     public function setEmail()
     {
         $array = ['17837032683@139.com'];
-        $this->emailModel->setEmail($array);
+        $this->emailModel->setEmail($array,'警告报警','我还不知道',null);
     }
 
 }

+ 29 - 21
catch/email/model/Email.php

@@ -1,4 +1,12 @@
 <?php
+/*
+ * @Descripttion: 
+ * @version: X3版本
+ * @Author: 吴胭脂
+ * @Date: 2022-06-07 10:16:16
+ * @LastEditors: 吴胭脂
+ * @LastEditTime: 2022-06-08 14:45:55
+ */
 
 namespace catchAdmin\email\model;
 
@@ -6,6 +14,8 @@ use catcher\base\CatchModel as Model;
 use  PHPMailer\PHPMailer\PHPMailer;
 use  PHPMailer\PHPMailer\Exception;
 use  PHPMailer\PHPMailer\SMTP;
+use think\facade\Db;
+
 class Email extends Model
 {
     // 表名
@@ -29,38 +39,41 @@ class Email extends Model
         'deleted_at',
     );
     /**
-     * 所有邮箱
+     * 
      */
-    public function setEmail($emails)
+    public function setEmail($emails,$title,$body)
     {
+        $where= [];
+        $where[] = ['type','=','email_config'];
+        $Host = Db::name("sys_config")->where($where)->where('field','SmtpHost')->value('fieldValue');
+        $Username = Db::name("sys_config")->where($where)->where('field','SmtpUserName')->value('fieldValue');
+        $Password = Db::name("sys_config")->where($where)->where('field','SmtpPassword')->value('fieldValue');
+        $SMTPSecure = Db::name("sys_config")->where($where)->where('field','SMTPSecure')->value('fieldValue');
+        $Port =Db::name("sys_config")->where($where)->where('field','SmtpPort')->value('fieldValue');
+        $Name = Db::name("sys_config")->where($where)->where('field','Name')->value('fieldValue');
         $mail = new PHPMailer(true);
         try {
             //服务器配置
             $mail->CharSet ="UTF-8";                     //设定邮件编码
             $mail->SMTPDebug = 0;                        // 调试模式输出
             $mail->isSMTP();                             // 使用SMTP
-            $mail->Host = 'smtp.qq.com';                // SMTP服务器
+            $mail->Host = trim($Host);                // SMTP服务器
             $mail->SMTPAuth = true;                      // 允许 SMTP 认证
-            $mail->Username = '1186820806@qq.com';                // SMTP 用户名  即邮箱的用户名
-            $mail->Password = 'ihyrohhnjysljcaf';             // SMTP 密码  部分邮箱是授权码(例如163邮箱)
-            $mail->SMTPSecure = 'ssl';                    // 允许 TLS 或者ssl协议
-            $mail->Port = 465;                            // 服务器端口 25 或者465 具体要看邮箱服务器支持
-            $mail->setFrom('1186820806@qq.com', '上海电力公司');  //发件人
-           // $mail->addAddress('aaaa@126.com', 'Joe');  // 收件人
+            $mail->Username = trim($Username);                // SMTP 用户名  即邮箱的用户名
+            $mail->Password = trim($Password);             // SMTP 密码  部分邮箱是授权码(例如163邮箱)
+            $mail->SMTPSecure = trim($SMTPSecure);                    // 允许 TLS 或者ssl协议
+            $mail->Port = trim($Port);                            // 服务器端口 25 或者465 具体要看邮箱服务器支持
+            $mail->setFrom(trim($Username),$Name);  //发件人
+            //$mail->addAddress('aaaa@126.com', 'Joe');  // 收件人
             //$mail->addAddress('ellen@example.com');  // 可添加多个收件人
-            // $mail->addReplyTo('xxxx@163.com', 'info'); //回复的时候回复给哪个邮箱 建议和发件人一致
+            //$mail->addReplyTo('xxxx@163.com', 'info'); //回复的时候回复给哪个邮箱 建议和发件人一致
             //$mail->addCC('cc@example.com');                    //抄送
             //$mail->addBCC('bcc@example.com');                    //密送
             foreach($emails as $item)
             {
                 $mail->addAddress($item);
             }
-
-
-
-
-
-            //发送附件
+           //发送附件
             // $mail->addAttachment('../xy.zip');         // 添加附件
             // $mail->addAttachment('../thumb-1.jpg', 'new.jpg');    // 发送附件并且重命名
         
@@ -69,16 +82,11 @@ class Email extends Model
             $mail->Subject = '系统警告';
             $mail->Body    = '<h1>这里是邮件内容</h1>' . date('Y-m-d H:i:s');
             $mail->AltBody = '如果邮件客户端不支持HTML则显示此内容';
-        
             $mail->send();
             echo '邮件发送成功';
         } catch (Exception $e) {
             echo '邮件发送失败: ', $mail->ErrorInfo;
         }
-
-
-
-
         
     }