美文网首页程序员
Laravel5.4-5.7 smtp邮件发送指南(以163免费

Laravel5.4-5.7 smtp邮件发送指南(以163免费

作者: 范仁镗 | 来源:发表于2018-11-28 12:05 被阅读12次

    1.引入 guzzlehttp/guzzle包

    命令:composer require guzzlehttp/guzzle

    2.修改.env文件的发送邮件配置

    注意,不用修改mail.config文件,将以下模板替代laravel关于邮件的配置:

    AIL_DRIVER=smtp

    MAIL_HOST=smtp.163.com

    MAIL_PORT=587

    MAIL_FROM_ADDRESS=fsisjacky@163.com

    MAIL_USERNAME=fsisjacky@163.com

    MAIL_PASSWORD=************

    MAIL_FROM_NAME=fsisjacky@163.com

    MAIL_ENCRYPTION=ssl

    3.创建可邮寄类(类名可根据实际需要进行修改):

    命令:php artisan make:mail UserValidate

    4.编辑可邮寄类

    执行上一条命令,会在App目录下多一个Mail的目录,UserValidate这个可邮寄类就在Mail目录里面,这个类是用来配置邮件的数据操作的,可以简单的理解为就是邮件专用的控制器。这个可邮寄类默认有一个builder方法和一个构造函数,构造函数可以依赖注入需要的模型,builder可以调用要发送的邮件视图文件。用法见下面的代码:

    namespace App\Mail;

    use ...

    class PwdValidate extends Mailable

    {

        use Queueable, SerializesModels;

        //这里的属性为public,则可以在builder方法引入的视图中直接{{$user}}这样用

       //如果为protected,则必须在builder方法引入视图后加->with(),详见手册

        public $user;

        public function __construct(User $user){  $this->user=$user;//通过依赖注入User模型 }

        public function build() {   return $this->view('email.pwdValidate'); }

    }

    5.创建发送邮件操作的接口,即路由:

    这里为演示就不写post表单了,简单用get方法操作:

    Route::get('/mail','Mail\UserMailController@send');

    6.创建UserMailController控制器并编写发送邮件的方法:

    命令:php artisan make:controller UserMailController

    并在控制器中添加send()方法:

    public function send(){

        $address="957403612@qq.com";//要发送的邮箱地址

        $user=User::find(2);//依赖注入的模型数据

        Mail::to($address)->send(new PwdValidate($user));

    }

    7.编写email.pwdValidate视图文件

    在视图目录App\Resource\views目录下,新建一个email目录,新建一个pwdValidate.blade.php视图模板文件,在视图模板文件中,简单的写一些展示数据的模板

    <div>

      Test User Name:{{$user->name}}

    </div>

    8.测试

    现在,可以到浏览器中输入网址:abc.text/mail,测试邮件是否被发送出去了。如果发送成功,会出现一个空白界面,然后在您设置发送的邮箱的已发送邮件里面,会有一封模板内容的邮件。

    相关文章

      网友评论

        本文标题:Laravel5.4-5.7 smtp邮件发送指南(以163免费

        本文链接:https://www.haomeiwen.com/subject/kujaqqtx.html