Laravel5.4发送邮件-创新互联-成都快上网建站

Laravel5.4发送邮件-创新互联

 在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属性。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文标题:Laravel5.4发送邮件-创新互联
网站链接:http://kswjz.com/article/dhsegi.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流