Очереди Laravel Mail с Iron.io

Мне удалось заставить мою подписку на push-очередь Iron.io работать отлично, но по какой-то причине не с почтовыми очередями. В приведенном ниже коде я помещаю задание в очередь с адресом электронной почты и именем пользователя в массиве $data. По неизвестным мне причинам адрес электронной почты и имя пользователя не передаются функции «Почта». Работа просто сидит там, не в состоянии отправить.

FooController.php

<?php

$data = array(
    'email_address' => Input::get('email'),
    'username'      => Input::get('username'),
);

Queue::push('SendEmail@reserve', $data);

routes.php

<?php

// iron.io push queue path

Route::post('queue/push', function()
{
    return Queue::marshal();
});


class SendEmail
{
    public function reserve($job, $data)
    {
        Mail::send('emails.reserve', $data, function($message)
        {
            $message->to($data['email_address'], $data['username'])->subject($data['username'] . ', welcome to RockedIn!');
        });
        $job->delete();
    }
}
?>

person kmm    schedule 17.09.2013    source источник
comment
У меня похожая проблема, могу ли я увидеть ваши электронные письма. резервный вид, пожалуйста?   -  person Fractaliste    schedule 29.11.2013


Ответы (1)


Вам нужно передать $data на замыкание.

public function reserve($job, $data)
{
    Mail::send('emails.reserve', $data, function($message) use ($data)
    {
        $message->to($data['email_address'], $data['username'])->subject($data['username'] . ', welcome to RockedIn!');
    });
    $job->delete();
}
person WebNovice    schedule 07.10.2013