Laravel 之 中间件的基本用法、中间件第三方发送邮件、Laravel发送邮件

一、创建中间件 php artisan make:middleware Blog(中间件名)
二、中间件的基本使用
1、第一种
中间件控制器,middleware中间件   App\Http\Middleware\Blog所用的 中间件 所在的路径
Route::get('test',['middleware'=>'App\Http\Middleware\Blog',function (){
    dump('hello world   我是当前这个请求');
}]);

//中间件
 public function handle($request, Closure $next)
    {
        //请求前执行
        dump("小丫头回头看请求前执行");

        $re = $next($request);//当前这个请求
        //请求后执行
        dump("小丫头回头看请求后执行");
        return $re;
    }
2、第二种
//中间件控制器  基本用法
Route::get('index',['middleware'=>'App\Http\Middleware\Blog','uses'=>'AiQing@index']);
3、第三种
//中间件控制器
Route::get('index','AiQing@index')->middleware('App\Http\Middleware\Blog');
三、定义中间件的使用路径
在app/Http/Kernel.php 中
'mail'=>\App\Http\Middleware\Blog::class,//定义中间件的路径

//中间件控制器
Route::post('index','AiQing@index')->middleware('mail');
四、中间件发送邮件 参考地址https://packagist.org/packages/nette/mail

1、使用composer下载邮件类 在命令提示符中输入 composer require nette/mail

2、在邮箱中开启以下服务

在这里插入图片描述
3、使用命令新建一个 中间件 php artisan make:middleware Blog
4、在 中间件 中 分别引入两个类 并输入如下代码

use Nette\Mail\Message;
use Nette\Mail\SmtpMailer;

   {
        $re = $next($request);

        //发送邮件
            $mail = new Message;
            $mail->setFrom('John <xiaoyatoushini@163.com>')//使用163的邮箱  xiaoyatoushini用户名
                ->addTo('1836416695@qq.com')//发送给谁
               // ->addTo($request->user()->email)//发送给谁  谁注册的就发送给谁
                // -> addTo('jack@example.com')//允许发送多个人
                ->setSubject('小丫头,加油')//主题
                ->setBody("世间安得两全法,不负如来不负卿");//内容

                //借助第三方
                $mailer = new SmtpMailer([
                        'host'=> 'smtp.163.com',//主机名  使用qq 或 使用163 或其他
                        'username'=> 'xiaoyatoushini',//用户名
                        'password'=> 'VQNQZTWOGNGWHDBO'//密码  授权码

                        //加密 授权
                        // 'secure'=> 'ssl',//安全  qq邮箱需开启
                        // 'context'=>   [
                        //     'ssl'=> [
                        //         'capath'=> '/ path / to / my / trusted / ca /​​ folder',
                        //      ],
                        // ],
                ]);
                $mailer->send($mail);
        return $re;
    }
五、Laravel发送邮件 参考地址 https://packagist.org/packages/nette/mail
1、定义驱动 在配置文件 .env 中配置新增如下文件
MAIL_DRIVER=smtp   默认系统
MAIL_HOST=smtp.163.com 邮箱类型
MAIL_PORT=25  端口 一搬25
MAIL_USERNAME=xiaoyatoushini@163.com  邮箱的用户名
MAIL_PASSWORD=VQNQZTWOGNGWHDBO  邮箱的授权码
MAIL_ENCRYPTION=null  是否加密,加密的类型
新增如下
MAIL_FROM_ADDRESS=xiaoyatoushini@163.com  从哪里发
MAIL_FROM_NAME=mrchi  自己定义,发件人
2、在 resources\views 下新建一个 emails 文件夹 并新建一个模板 mail.blade.php
3、引入 use Mail; 类,并写入如下代码
Mail::send('emails.mail',['name'=>'我可以传参嘿嘿'],function($message){//一个闭包
            $message->to('1836416695@qq.com')->subject('我看看主题');//发送给谁  后面还可以设置主题...
        });
4、生成 Mailable

php artisan make:mail OrderShipped(名称)
以下可以调用模板 和 传参

 public function build()
    {
        return $this->view('emails.mail')->with(['我是传参xiaoyatou']);//调用模板
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值