laravel5.1 使用隊列發送郵件

首先在.env文件下設定隊列的驅動php

QUEUE_DRIVER = database

laravel5.1提供了6種驅動,sync,databse,beanstalkd,sqs,iron,redis具體能夠在官方手冊查閱.laravel

本次選用database做爲驅動web

php cli下執行redis

php artisan queue:table

php artisan queue:failed-table

php artisan migrate

生成了兩個表,存放隊列的成功的數據和失敗的數據app

而後在app/config/mail.php下設置發信人的帳戶和名稱'from' => ['address' => 'XXX@163.com', 'name' => 'fuck it']ui

.env下設置郵箱的相關信息code

MAIL_DRIVER=smtp
MAIL_HOST=smtp.163.com
MAIL_PORT=25
MAIL_USERNAME=郵箱帳戶
MAIL_PASSWORD=郵箱密碼
MAIL_ENCRYPTION=null

確認你的郵箱已經開啓了SMTP服務隊列

配置發送路由路由

Route::get('mail/queue',function(){
   Mail::later(5,'emails.queued_email',["name" => "gewenrui"],function($message){
            $message->to('收件人郵箱','名稱')->subject('主題');
   });

    return "get emails";
});

views/emails/queue下新建模板get

php cli 下執行php artisan queue:listen

web下訪問mail/queue這個路由

能夠發現Processed: mailer@handleQueuedMessage發送成功

相關文章
相關標籤/搜索