一、创建中间件 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']);//调用模板
}