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分钟内输入你的验证码');
}
}
模板:
邮箱:
更多
扫描下方二维码,关注本人公众号:
___中国好码农