在laravel中使用smtp发送邮件很简单;
1、发送设置:在项目根目录下配置环境变量 .env 文件
MAIL_DRIVER=smtp
MAIL_HOST=smtp.163.com
MAIL_PORT=25
MAIL_USERNAME=email_username
MAIL_PASSWORD=email_password //这里应该为邮箱设置的三方授权密码
MAIL_ENCRYPTION=null
2、php发送代码:
use Mail;
protected function sendEmail($user)
{
$view = 'emails.login_info'; //发送邮件模板
$time = ['time'=>date('Y-m-d H:i:s',time())]; //发送的数据,laravel中模板变量都是数组形式
$from = '123@163.com'; //发送方邮件
$name = '123'; //发送方名称
$to = $user['email']; //接收方邮件
Mail::send($view,$time,function($message) use($from,$name,$to) { //注意在use里面必须添加下面使用的所有变量
$message->from($from,$name)->to($to)->subject('登录提醒邮件'); //subject邮件标题
});
}
使用发送:
$data = [
'email' => $request->email,
'password' => $request->password
];
if(Auth::attempt($data)){
$this->sendEmail($data);
}else{
}
注:另外laravel自身邮件发送还需要配置 config/mail.php
*/
'from' => ['address' => null, 'name' => null], //这里的null要改成实际地址
/*
3、邮件发送模板
views/emails/login_info.blade.php
<div class="col-md-offset-2 col-md-8">
<div class="panel panel-info">
<div class="panel-heading">
<h5>登录提醒邮件</h5>
</div>
<div class="panel-body">
<span>您于{{ $time }}登录网站</span>
</div>
</div>
</div>