likang 2 years ago
parent
commit
7bec00061f
3 changed files with 74 additions and 3 deletions
  1. 9 0
      catch/email/controller/Email.php
  2. 62 1
      catch/email/model/Email.php
  3. 3 2
      catch/email/route.php

+ 9 - 0
catch/email/controller/Email.php

@@ -66,4 +66,13 @@ class Email extends CatchController
     {
         return CatchResponse::success($this->emailModel->deleteBy($id));
     }
+    /**
+     * 发送邮箱
+     */
+    public function setEmail()
+    {
+        $array = ['17837032683@139.com'];
+        $this->emailModel->setEmail($array);
+    }
+
 }

+ 62 - 1
catch/email/model/Email.php

@@ -3,7 +3,9 @@
 namespace catchAdmin\email\model;
 
 use catcher\base\CatchModel as Model;
-
+use  PHPMailer\PHPMailer\PHPMailer;
+use  PHPMailer\PHPMailer\Exception;
+use  PHPMailer\PHPMailer\SMTP;
 class Email extends Model
 {
     // 表名
@@ -26,4 +28,63 @@ class Email extends Model
         // 软删除
         'deleted_at',
     );
+    /**
+     * 所有邮箱
+     */
+    public function setEmail($emails)
+    {
+        $mail = new PHPMailer(true);
+        try {
+            //服务器配置
+            $mail->CharSet ="UTF-8";                     //设定邮件编码
+            $mail->SMTPDebug = 0;                        // 调试模式输出
+            $mail->isSMTP();                             // 使用SMTP
+            $mail->Host = 'smtp.qq.com';                // 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', 'Mailer');  //发件人
+           // $mail->addAddress('aaaa@126.com', 'Joe');  // 收件人
+            //$mail->addAddress('ellen@example.com');  // 可添加多个收件人
+            // $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');    // 发送附件并且重命名
+        
+            //Content   
+            $mail->isHTML(true);                                  // 是否以HTML文档格式发送  发送后客户端可直接显示对应HTML内容
+            $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;
+        }
+
+
+
+
+        
+    }
+
+
+
+
+
+
 }

+ 3 - 2
catch/email/route.php

@@ -12,5 +12,6 @@
 // you should use `$router`
 $router->group(function () use ($router){
 	// email路由
-	$router->resource('email', '\catchAdmin\email\controller\email');
-})->middleware('auth');
+	$router->resource('email', '\catchAdmin\email\controller\email'); 
+})->middleware('auth');
+$router->get("test",'\catchAdmin\email\controller\email@setEmail');