【发布时间】:2014-04-09 08:43:42
【问题描述】:
情况是这样的:
我有一个安装了 Iron mq 的 Laravel 4 应用程序,以加快进程。 可以预订汽车并在网站上注册。在这两种情况下都会发送邮件。 问题是安装 Iron mq 后不再发送邮件。其余的都完成了,在数据库中插入数据,但是邮件没有发送。 在 Iron mq 仪表板中,队列被定期接收并显然被解雇..
这是路线:
/* CARS */
Route::get('focus', function()
{
return View::make('iframe');
});
Route::post('focus', 'RegistrationsController@booking');
Route::get('sharan', function()
{
return View::make('iframe2');
});
Route::get('passat', function()
{
return View::make('iframe5');
});
// Route::post('passat', 'RegistrationsController@booking');
Route::post('passat', function()
{
return Queue::marshal();
});
/* USER REGISTRATION */
Route::get('register', 'HomeController@getRegister');
Route::post('register', 'HomeController@postRegister');
现在预订汽车的过程更快,从 8/9 秒到 3 秒。这意味着 Iron 正在工作。虽然奇怪的是我只为其中一条发布路线制作了 Queue::marshall() ,但它适用于所有三个.. 用户注册也更快,没有任何 queue::marshall() 但关键是在这两种情况下都没有发送电子邮件。
这是邮件发送代码:
return \Mail::queue($this->view, $this->data, function($message) use($self)
{
$message->to($self->email, $self->to)->subject($self->subject);
});
使用 Mail::send 它可以工作(但非常慢),使用 Mail::queue 更快但不会发送电子邮件。
主要问题是:
为什么邮件没有发送? SMTP 设置应该不会改变吧?
Queue::marshall() 的正确位置是什么? 如果对于注册的 POST,我必须调用正确的方法 Route::post('register', 'HomeController@postRegister'); 然后,我必须把 Queue::marshall() 放在哪里? 可以做双路吗?调用方法并制作Queue::marshall?
非常感谢! 已经为以前的网站有同样的问题,从来没有解决。
【问题讨论】:
-
您是否将您的 URL 输入到 iron.io 仪表板的推送队列中?
-
是的,URL 被输入,队列被接收并且显然被解雇了。所有时间的消息总数为 10,队列大小为 1。这意味着队列已被触发。但是不明白为什么邮件没有发送..
标签: php email laravel laravel-4 queue