Laravel 5邮件队列不起作用

时间:2016-08-03 07:01:22

标签: php laravel email laravel-5.2

我正在尝试在Laravel 5.2中对电子邮件进行排队,但我一直在数据库中获取空的有效负载(如下所示)

Empty Payload

我的config\queue.php

'connections' => [

    ...

    'database' => [
        'driver' => 'database',
        'table' => 'jobs',
        'queue' => 'default',
        'expire' => 60,
    ],

    ...
]

我的排队代码:

if(Input::get('email-admin')) {
    $admin_pdf = PDF::loadView('emails.reporting.checkin-report', ['content' => $admin_email])->inline();
    Mail::queue('emails.reporting.checkin-email', [], function ($m) use ($admin_pdf, $start) {
        //Admin should have User ID of '1'
        $admin = User::find(1);
        $report_name = $start->format('F') . '-report.pdf';
        $m->attachData($admin_pdf, $report_name);
        $m->to($admin->email, $admin->first_name)->subject('flexxifit ' . $start->format('F') . ' Report');
    });
}

我也试过Mail::later()但没有成功。

2 个答案:

答案 0 :(得分:4)

您应该在控制台中运行侦听器

php artisan queue:listen

了解更多here

答案 1 :(得分:2)

显然,序列化程序不喜欢字节字符串(在这种情况下为$ admin_pdf)。

你可以在排队之前通过base64_encoding字节串数据来修复它,然后在闭包中再次解码它,如下所示:

../lib/code.js