Laravel4+Iron io:如何使用mail::queue发送邮件



我有一个laravel应用程序,它的表单在提交时会发送邮件。自收到邮件以来,邮件配置工作正常。

但由于这个过程相当缓慢,我决定使用Queue。

我已经建立了Iron mq帐户,并在Laravel4上进行了设置。

因此,我切换到Mail::queue而不是Mail::send。这是代码:

      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

谢谢你们!如果它混淆了,很抱歉。希望你能向我澄清!

我以前用过SQS,但没有用Iron,也许你应该用这个?

Route::post('booking', array('before'=>'csrf', 'uses'=>'HomeController@booking'));

最新更新