laravel发送邮件配置

 

我这里使用的是qq邮箱,配置如下

config/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文件里方便管理

.env文件

MAIL_DRIVER=smtp  //因为laravel其他邮件发送方式要么有数量限制要么收费,所以在这里还是选smtp发送
MAIL_HOST=smtp.qq.com
MAIL_PORT=465    //与下面ssl方式要保持一致
MAIL_USERNAME=xxxx  //qq邮箱地址
MAIL_PASSWORD=xxxxxxxxxxx     //这里不是qq密码,是qq邮箱中,开启smtp服务后生成的授权码
MAIL_FROM_ADDRESS=xxxx@qq.com  //qq邮箱地址,需要和MAIL_USERNAME一致
MAIL_FROM_NAME=xxxx  //发件人名
MAIL_ENCRYPTION=ssl  //发送方式,使用的是ssl加密发送//

配置完成

记住laravel5.5以后一定要php artisan config:cache,不然不会生效噢

在你的测试的controller中

use Illuminate\Support\Facades\Mail;//调入mail类

//方法中添加如下

$name = '测试发送邮件';
$flag = Mail::send('mails.order',['name'=>$name],function($message){
    $to = 'xxxx@qq.com'; //接受邮件的地址
    $message ->to($to)->subject('测试邮件');
});

mails.order是邮件模板,我定义在了resources/views/mails/order.blade.php中

这样邮件就可以发送了

posted @ 2018-06-12 11:36  Forward1990  阅读(270)  评论(0编辑  收藏  举报