2013-06-28 29 views
1

我想在Laravel 4中使用Mail ::队列没有成功。使用Mail ::队列与iron.io

当我运行命令:

php artisan queue: subscribe queue_name http://foo.com/queue/push 

这是对我的仪表盘上的用户创建的,而且当我进入我的路线队列/发送一个新的队列发送到Iron.io.

的问题是,我从未收到电子邮件时要执行的的Mail ::队列应该发送。

看我的路线:

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

Route::get('queue/send', function() { 
     Mail::queue('emails.teste', array(), function($message) { 
        $message->to('[email protected]', 'Renato')->subject('Welcome!'); 
       }); 

     return 'Ok'; 
    }); 

是否有超越queues.php任何配置我需要做什么?

当我改变队列/推(调试)接受GET和访问的URL,出现以下错误:

lluminate \加密\ DecryptException

无效数据。

+0

您是否在'app/config/mail.php'中配置了您的邮件凭证? – zeantsoi

+0

这正确配置我的邮件文件,如果我使用Mail ::发送电子邮件发送 – Renato

+0

摆脱“队列:订阅” –

回答

3

我可能关闭了,但Mail::send()是正确的函数,因为您正在使用Iron.io来处理队列。

这应该工作:

Route::get('queue/send', function() { 

    Queue::push(function($job) { 

     Mail::send('emails.teste', array(), function($message) { 
      $message->to('[email protected]', 'Renato')->subject('Welcome!'); 
     }); 

     $job->delete(); 
    } 

    return 'Ok'; 
}); 

我也建议检查你的Iron.io账户,以确保“用户”的URL设置正确。正如Rob W所说,这个空间可能会导致问题。

+0

我还认为应该有一个带有'fire'方法的类, '使用队列不够... –

+0

通常情况下你会这样做,对于发送电子邮件等简单任务来说,一个类可能会过度杀伤,L4也支持将一个闭包推入队列 - [Queuing Closures](http://laravel.com)/docs/queues#queuing-closures) –

+3

@timF'Mail:queue'(http://laravel.com/docs/mail#queueing-mail)适用于'Iron.io' – MrCasual