5.3版本新添加了mailable焕济,在原有發(fā)送郵件方法的基礎(chǔ)上增加了更強(qiáng)大的方式,也更方便的運(yùn)用
使用 artisan 創(chuàng)建
php artisan make:mail WelcomeToMyHouse
生成 App/Mail/WelcomeToMyHouse.php
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class WelcomeToMyHouse extends Mailable
{
use Queueable, SerializesModels;
public $data; //定義一個(gè)公共的變量
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($data)
{
$this->data = $data;//接收傳入的變量
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
//郵件模板視圖 path: views/email/welcome.blade.php
return $this->view('email.welcome')->subject($this->data->title);
}
}
郵件模板 Views/email/welcome.blade.php
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{$data->title}}</title>
</head>
<body>
<h2>歡迎你 {{$data->name}}戈盈,來(lái)到我的地帶</h2>
<p>在這里你會(huì)發(fā)現(xiàn)無(wú)限樂(lè)趣。达吞。</p>
</body>
</html>
配置mail.php
'from' => [
'address' => 'xxxx@163.com',//發(fā)件地址
'name' => 'Tony qu',//發(fā)件人名稱(chēng)
],
配置 .env
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=xxx
MAIL_PASSWORD=xxxx
MAIL_ENCRYPTION=null
這里使用 mailtrap 來(lái)測(cè)試郵件發(fā)送狀態(tài),找到測(cè)試賬戶信息,填入到上面.env對(duì)應(yīng)的 配置中
郵件信息
現(xiàn)在正式開(kāi)始操作郵件的發(fā)送
在 Route/web.php 定義一個(gè)路由
use Illuminate\Support\Facades\Mail;
use App\Mail\WelcomeToMyHouse;
//測(cè)試mailable發(fā)送郵件
Route::get('mail/send', function () {
$data = (Object)[
'title' => '歡迎來(lái)到我的地帶',
'name' => 'Tony qu',
'to' => 'qutaotao@qq.com'
];
Mail::to($data->to)->send(new WelcomeToMyHouse($data));
});
測(cè)試結(jié)果
測(cè)試結(jié)果