邮件:队列不发送邮件



我在Laravel 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::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:{}}}"}}

我还发现了这个:http://forumsarchive.laravel.io/viewtopic.php?id=12672

. .我按照以前的链接的所有说明,但我一直得到这个错误信息。

有人知道怎么解决这个问题吗?

编辑:电子邮件。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

查看您的错误作业—它似乎正在将Input::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');
    });

相关内容

  • 没有找到相关文章

最新更新