Laravel邮箱推送
Laravel邮箱推送
打开项目根目录下面的config文件夹,找到mail.php文件
如图配置
然后配置.env文件
这里的MAIL_PASSWORD为你邮箱的授权码,
已QQ邮箱为列,需要开启POP3和SMTP服务。开启方式如下:QQ邮箱 > 设置 > 账户
当开启成功会生成密钥,这个东西会在配置中用到
当需要记录发信记录时,你还需要进行相关配置
废话不多说,直接上代码,
以上配置这些完成后:
/*邮箱发送*/
public function mailbox_code(Request $request){
$param=$request->all();
/*输入的邮箱*/
$mailbox=$param['mailbox'];
/*验证邮箱是否合格*/
$is_mailbox=$this->mailbox($param);
if($is_mailbox){
return $is_mailbox;
}
$ip=$request->getClientIp();
/*生成6为随机数为验证码*/
$data=$this->getRandom(6);
// Cache::forget($ip.'mailbox_code');
if(Cache::get($ip.'mailbox_code')){
return array('code'=>1,'msg'=>'请在5分钟内输入你的验证码');
}else{
Cache::put($ip.'mailbox_code', $data,300);
}
/*html.code意为模板,data 为传值到模板中去*/
Mail::send('html.code',['data'=>$data],function($message) use($mailbox) {
$message->to($mailbox)->subject('测试邮件');
});
/*Mail::failures()有值时便是失败,无值则成功*/
if(Mail::failures()){
return array('code'=>1,'msg'=>'发送失败,请稍后再试');
}else{
/*这里记录日志*/
$log = new Logger('register');
$path='logs/register_code.log';
$log->pushHandler(new StreamHandler(storage_path($path)));
$str="时间: ".date("Y-m-d H:i:s",time())." Code:".$data." ip:".$ip." 邮箱:".$mailbox;
$log->info($str);
return array('code'=>0,'msg'=>'请在5分钟内输入你的验证码');
}
}
模板:
邮箱:
更多
扫描下方二维码,关注本人公众号:
猜你喜欢
在 Laravel 中集成 Swoole 实现 WebSocket 服务器
阅读 926基于 LaravelS 扩展包把 Swoole 集成到 Laravel 项目来实现 WebSocket 服务器,以便与客户端进行 WebSocket 通信从而实现广播功能。
第一个go网站
阅读 327使用go gin 搭建一个网站
redis秒杀
阅读 673基于redis 实现并发情况的超卖超买解决方案
kafka初体验
阅读 528使用kafka需要安装Java环境,安装zookeeper,安装kafa
Resultful API规范
阅读 510什么是resultful
php 的swoole 和websocket 连接wss
阅读 668wss的设置
php 异步执行耗时任务
阅读 1013php 异步执行耗时任务的方法
LaravelS基于Swoole实现高性能 HTTP 服务器
阅读 724LaravelS基于Swoole 配置nginx等