laravel 使用QQ邮箱发送邮件

2018-08-29  本文已影响65人  _不能说的秘密i

laravel version: 5.4.*

准备

使用QQ邮箱必须打开smtp/pop3等几个服务,开启服务可能需要验证

email.png

开启服务后需要生成验证码,等会有用

email2.png

配置

配置文件: /config/mail.php 找到 from 则一项,其他默认就好

 'from' => [
        //  'your_account@qq.com' 此处填写你发送邮件的账号
        'address' => env('MAIL_FROM_ADDRESS', 'your_account@qq.com'),
        'name' => env('MAIL_FROM_NAME', 'laravel测试学习'),
],

配置 .env 文件

MAIL_DRIVER=smtp
MAIL_HOST=smtp.qq.com
MAIL_PORT=465
MAIL_USERNAME=your_account@qq.com
MAIL_PASSWORD=gzwwibkmqakdjead
MAIL_ENCRYPTION=SSL

发送

发送纯文本格式邮件

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Mail;

class TestController extends Controller{
    public function sendEmail () {
        Mail::raw("这是测试的内容", function ($message){
            // * 如果你已经设置过, mail.php中的from参数项,可以不用使用这个方法,直接发送
            // $message->from("1182468610@qq.com", "laravel学习测试");
            $message->subject("测试的邮件主题");
            // 指定发送到哪个邮箱账号
            $message->to("3233824562@qq.com");
        });

        // 判断邮件是否发送失败
       if(count(Mail::failures())) {
            return '邮件发送失败';
        }

    }
}

发送html格式邮件

<h1>hello {{$name}}, 这是我在学习laravel时给你发送的邮件!! ^_^</h1>
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Mail;

class TestController extends Controller{
    public function sendEmail () {
        /**
         * email: 指定模板,模板位于 resources/views/email.blade.php
         * ['name'=>'Alex']: 指定模板中的参数
         */
        Mail::send('email',['name'=>'Alex'], function($email) {
            $email->subject("laravel学习与测试");
            $email->to("3233824562@qq.com");
        });

    }
}

在发送的过程中不建议频繁发送到一个账号,否则会被腾讯自动标记为垃圾邮件就会报错, 如果需要测试,可以将这个发送邮件的账号设置到白名单中..

email3.png

其实laravel不仅仅能够发送html格式的还能发送 markdown 格式的邮件,这个如果有兴趣就自己去学习吧 ^_^

相关资料

https://laravel-china.org/docs/laravel/5.5/mail/1321

上一篇下一篇

猜你喜欢

热点阅读