我在 StackOverflow 和其他地方阅读过关于使用 Laravel 邮件和 IronMQ 的其他帖子,例如Using Mail::queue with iron.io - 他们要么提倡同时使用 Queue::push 和 Mail::send,要么说你可以使用 Mail ::queue 但不提供具体的代码示例。
是否可以仅使用 Mail::queue 对电子邮件进行排队?(即不使用Queue::push?)
我已经尝试使用下面的代码,但是 Mail::queue 这里实际上并没有向 Iron 发送消息(我的其他设置应该没问题,因为我可以看到 Queue::push 有效,并且 Mail::send 也可以在没有队列参与)
public function submit_contact_form()
{
ContactForm::create(['email'=>$_POST['email'],'query'=>$_POST['query'],'name'=>$_POST['name']]);
$name_fixed = ucwords(strtolower($_POST['name']));
$data = array('name'=>$name_fixed, 'query'=>$_POST['query']);
Mail::queue('emails.contact_form', $data, function($message) {
$name_fixed = ucwords(strtolower($_POST['name']));
$message->to($_POST['email'], $name_fixed)->subject('Contact received');
});
}
Route::post('/queue', function() {
return Queue::marshal();
});
总而言之,将 Iron 队列与 Laravel 5 邮件一起使用的最简单/最有效的方法是什么?
谢谢