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中
这样邮件就可以发送了