Php 邮件::队列不发送电子邮件
我一直在用拉维4的队列发送电子邮件。让我描述一下我的问题: 这项工作:Php 邮件::队列不发送电子邮件,php,laravel,laravel-4,mail-queue,Php,Laravel,Laravel 4,Mail Queue,我一直在用拉维4的队列发送电子邮件。让我描述一下我的问题: 这项工作: Mail::send('emails.validateEmail', array("username" => Input::get("username"), "code" => $code), function($message){ $message->to(Input::get('email'), Input::get('username')) ->subject('Some subject
Mail::send('emails.validateEmail', array("username" => Input::get("username"), "code" => $code), function($message){
$message->to(Input::get('email'), Input::get('username'))
->subject('Some subject');
});
但是,这不起作用:
Mail::queue('emails.validateEmail', array("username" => Input::get("username"), "code" => $code), function($message){
$message->to(Input::get('email'), Input::get('username'))
->subject('Some subject');
});
我创建了failed_jobs
表,在该表中,我对工人保留了所有失败的作业,并在该表中发现了以下错误:
{"job":"mailer@handleQueuedMessage","data":{"view":"emails.validateEmail","data":{"username":"some_username","code":"MMgNSoaFcyGoIy10sIKgkwUOdux3tM"},"callback":"C:38:\"Illuminate\\Support\\SerializableClosure\":155:{a:2:{i:0;s:126:\"function ($message) {\n $message->to(\\Input::get('email'), \\Input::get('username'))->subject('Some subject');\n};\";i:1;a:0:{}}}"}}
我还发现:
。。我遵循了上一个链接中的所有说明,但我一直收到此错误消息
有人知道如何解决这个问题吗
编辑:emails.validateEmail文件
Hello {{ $username }}!<br>
<p>some text</p><br>
<a href="{{ URL::route('validate') }}?code={{ $code }}&username={{ $username }}">{{ URL::route("validate") }}?code={{ $code }}&username={{ $username }}</a><br><br>
some more text
Hello{{$username}
一些文本
更多的文字
查看错误作业-它似乎是将输入::get()
命令传递到序列化中,而不是这些命令中的数据
所以我认为你需要做一些类似的事情来让它工作:
$data['email'] = Input::get('email');
$data['username'] = Input::get('username');
Mail::queue('emails.validateEmail', array("username" => Input::get("username"), "code" => $code), function($message) use ($data){
$message->to($data['email'], $data['username'])->subject('Some subject');
});
你能发布你的
电子邮件吗?validateEmail
查看文件吗?@shift-exchange我编辑了我的问题你在使用什么队列驱动程序?@shift-exchange我在使用Beanstalkdo如果你切换到同步驱动程序会发生什么?就是这样!多谢各位