我有一个带有表单的 laravel 应用程序,当它提交时会发送一封邮件。收到邮件后,邮件配置工作正常。
但由于这个过程很慢,我决定使用队列。
我已经设置了 Iron mq 帐户并在 Laravel4 上设置了它。
所以不是Mail::send
我切换到Mail::queue
. 这是代码:
return \Mail::queue($this->view, $this->data, function($message) use($self)
{
$message->to($self->email, $self->to)->subject($self->subject);
});
在路线中有简单的:
Route::post('booking', 'HomeController@booking');
Route::post('rezervesana', 'HomeController@booking'); // This is for the latvian version
当我提交表单时,Iron mq 仪表板中收到了队列并且显然被解雇了。但是没有收到邮件。。
相反,如果我做这样的事情:
Route::post('booking', function()
{
return Queue::marshal();
});
然后神奇地它将在拉脱维亚版本(rezervesana)中工作,但当然比英文版页面甚至不再打开了..
所以我很困惑。
问题是:如何正确发送邮件Mail::queue
以及如何在路由中处理它?
我认为关于 的代码Mail::queue
是正确的,错误可能在路线中。
所以真正的问题可能是:我必须如何设置路线才能使队列正常工作?哪个是合适的地方Queue::marshal
?
感谢你们!很抱歉,如果它感到困惑。希望你能给我澄清一下!