Laravel 5.4发送邮件
admin
2023-06-17 00:41:27
0

  在Laravel5.4当中发送邮件需要配置的文件有两个,分别是位于项目路径下的.env和config/mail.php

mail.php文件的内容是这样的:

    'driver' => env('MAIL_DRIVER', 'smtp'),

    'host' => env('MAIL_HOST', 'smtp.mailgun.org'),

    'port' => env('MAIL_PORT', 587),

    'from' => [

        'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),

        'name' => env('MAIL_FROM_NAME', 'Example'),

    ],

    'encryption' => env('MAIL_ENCRYPTION', 'tls'),

    'username' => env('MAIL_USERNAME'),

    'password' => env('MAIL_PASSWORD'),

    'sendmail' => '/usr/sbin/sendmail -bs',

    'markdown' => [

        'theme' => 'default',

        'paths' => [

            resource_path('views/vendor/mail'),

        ],

    ],

];

.env文件中和发送邮件相关的部分是这样的:

MAIL_DRIVER=smtp

MAIL_HOST=smtp.mailtrap.io

MAIL_PORT=2525

MAIL_USERNAME=null

MAIL_PASSWORD=null

MAIL_ENCRYPTION=null

  可以看出其中的很多参数直接引自.env文件,比如'driver' => env('MAIL_DRIVER', 'smtp'),若是.env文件中的MAIL_DRIVER设置了值,则使用MAIL_DRIVER的值,否则使用后面默认的smtp。在实现发送邮件功能的过程中,先修改.env文件:

MAIL_DRIVER=smtp

MAIL_HOST=smtp.qq.com

MAIL_PORT=465

MAIL_USERNAME='你自己的邮箱'

MAIL_PASSWORD='你自己的授权码'

MAIL_ENCRYPTION=ssl

然后修改config目录下的mail.php,只要修改'from'就行了。

'from' => [

        'address' => '你自己的邮箱',

        'name' => '你希望显示的名称',

    ],

比如'address'=>'123456@qq.com','name'=>'金太阳',对方的收件时的发件人名称就是‘金太阳’、地址是‘123456@qq.com’。当然也可以不修改mail.php文件,但这样就需要在.env中添加MAIL_FROM_ADDRESS和MAIL_FROM_NAME了。

  这些配置好以后,在项目路径下执行php artisan make:mail Test命令,这样就会在app\Mail下生成Test.php的文件,这个文件就是我们创建的邮件类,以后每一封发送出的邮件都是该类生成的一个实例。该类刚创建时只有两个方法:

namespace App\Mail;

use Illuminate\Bus\Queueable;

use Illuminate\Mail\Mailable;

use Illuminate\Queue\SerializesModels;

use Illuminate\Contracts\Queue\ShouldQueue;

class Test extends Mailable

{

    use Queueable, SerializesModels;

    public function __construct()

    {

        //

    }

    public function build()

    {

        return $this->view('view.name');

    }

}

如果想要通过邮件发送一点什么给收件人,可以修改这个类。比如我们要发送一个茶杯($cup)的颜色和容量信息给收件人,那么就这样:

 use Queueable, SerializesModels;

    public $cup;

    public function __construct($cup)

    {

        $this->cup = $cup;

    }

    public function build()

    {

        return $this->view('view.name');

    }

'view.name'是邮件的模板,比如我们的模板文件是位于views/mail下的cupinfo.blade.php,那么就要修改为return $this->view('mail.cupinfo');

cupinfo.blade.php文件可以这么写来显示茶杯的信息:

   

    laravel

   

茶杯详情

    颜色:{{$cup->colour}}容量:{{$cup->volume}}

这样我们的邮件发送准备工作就完成了。需要发送茶杯信息的功能时只需要加入以后代码就可以了:

Mail::to($user)->send(new Test($cup));

代码中的$user是收件人,Laravel会自动从$user中取得name和email属性。

相关内容

热门资讯

特朗普提了一个非分要求 都是网络上的P图,看看挺有意思的明明知道会被拒绝,但特朗普还是提了一个非分的要求。甚至事先协商也没协...
菲总统马科斯访日,菲律宾民众在... 【环球时报报道 记者 邢晓婧】菲律宾总统马科斯26日抵达日本,开启为期4天的访日行程。据菲律宾ABS...
国家安全部提示:这些码不能随便... 扫码关注,扫码支付,扫码登录……二维码已融入我们工作、生活的方方面面,为我们提供了巨大便利。然而,国...
伊比莱瑞取得不锈钢粉末自动注射... 国家知识产权局信息显示,东莞市伊比莱瑞科技有限公司取得一项名为“一种不锈钢粉末自动注射成型装置”的专...
星链涨价5倍,五角大楼和Spa... 【文/观察者网 熊超然】随着亿万富翁马斯克拥有的“星链”(Starlink)网络引导美制自杀式无人机...
人民日报刊文:妄图洗白成“解放... 妄图洗白成“解放者”,日本注定徒劳(环球走笔)牛瑞飞 《人民日报》(2026年05月27日 第 15...
AI支付时代要来了吗?支付宝A... 【大河财立方 记者 杨霄 王宇】5月26日,在支付宝AI支付生态大会上,支付宝宣布,“AI支付”已完...
毫厘间的山河:0.001%背后... 元素周期表的版图上,锌,是一块古老而平凡的疆域。但当它的纯度跃升至99.998%时,这块金属便被赋予...
朝鲜进行新型武器系统试射 当地时间5月26日,朝鲜导弹总局和国防科学院进行轻型多用途导弹发射系统和多管战术巡航导弹武器系统试验...
原创 华... 华为各大产品全面发展,而且是多系列多版本,其中手机/笔记本均拥有4个系列,平板/手表均拥有6个系列,...