在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 = '[email protected]'; //發送方郵件
$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>