Laravel5.3+Mailable发送邮件

5.3版本新添加了mailable,在原有发送邮件方法的基础上增加了更强大的方式,也更方便的运用
使用 artisan 创建

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; //定义一个公共的变量
    /**
     * 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}},来到我的地带</h2>
    <p>在这里你会发现无限乐趣。。</p>
</body>
</html>

配置mail.php

'from' => [
        'address' => 'xxxx@163.com',//发件地址
        'name' => 'Tony qu',//发件人名称
    ],

配置 .env

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=xxx
MAIL_PASSWORD=xxxx
MAIL_ENCRYPTION=null

这里使用 mailtrap 来测试邮件发送状态,找到测试账户信息,填入到上面.env对应的 配置中

邮件信息

现在正式开始操作邮件的发送
在 Route/web.php 定义一个路由

use Illuminate\Support\Facades\Mail;
use App\Mail\WelcomeToMyHouse;
//测试mailable发送邮件
Route::get('mail/send', function () {
    $data = (Object)[
        'title' =>  '欢迎来到我的地带',
        'name'  =>  'Tony qu',
        'to'    =>  'qutaotao@qq.com'
    ];
    Mail::to($data->to)->send(new WelcomeToMyHouse($data));
});

测试结果

测试结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 校园失物招领平台开发 ——基于laravel框架构建最小内容管理系统 摘要 ​ 针对目前大学校园人口密度大、人群活...
    蓝莲花xzsky阅读 6,249评论 8 54
  • 文章分类 后台文章分类列表页模板导的详细步骤建立数据表blog_category,并添加相应的文章字段使用php ...
    JoyceZhao阅读 1,771评论 0 14
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,973评论 19 139
  • 过去做事情急,什么东西拿起来就用,不喜欢进行系统性的学习,造成在使用过程中的错误和低效,现在感觉自己耐心多了,用之...
    马文Marvin阅读 2,027评论 0 10
  • 新绿一片三月天,不待东风自行先。 物以待序新生日,勤健安泰此刻间。
    微光一点阅读 169评论 0 0