【问题标题】:Mail not sending in laravel 5 from an ajax post request邮件未从 ajax 发布请求在 laravel 5 中发送
【发布时间】:2017-09-09 03:11:14
【问题描述】:

我正在开发我的 laravel 5.0 应用程序中的忘记密码功能。我要求用户输入注册的电子邮件并提交(发布方法)此表单适用于 jquery ajax 发布请求。从请求收到电子邮件后,我在 db 中检查它是否存在。如果存在,我正在更新新密码,如果没有发送错误消息,这一切都很好。现在我正在尝试向用户发送带有新密码的电子邮件,它不起作用。密码正在更新,但电子邮件未发送。在下面找到我的控制器代码

public function forgot_pass(Request $request){

        $email = $request->input('femail');
        $data = ['email' => $email];

        $user = Myuser::where($data)->count();

        if($user == 0){
            return response()->json(['status' => 'Invalid']);
        }
        else{

            $user_details = Myuser::where($data)->get()->first();

            $new_pass = $this->generateRandomString();

            $md5_pass = md5("EEE".$new_pass);

            $status = Myuser::where('email', $email)
                ->update(['pass' => $md5_pass]);

                if($status){

                    $mail_data = ['name' => $user_details->name, 'new_pass' => $new_pass];

                    Mail::send('emails.newpassword', $mail_data, function($message)
                    {
                        $message->from('us@example.com', 'Laravel');

                        $message->to($email);

                    });

                    return response()->json(['status' => 'Invalid']);
                }

        }

    }

如果我使用$message->to('sometest@testmail.com'); 而不是$message->to($email);,实际上邮件可以正常工作。以下是我遇到的错误。

感觉很奇怪为什么$email会导致错误。

【问题讨论】:

  • 路由中调用url的方法有误。
  • @Autista_z 什么方法不对?我没听明白。

标签: php ajax email laravel-5


【解决方案1】:

您必须将$email 传递给匿名函数

Mail::send('emails.newpassword', $mail_data, function($message) use ($email) {
...
});

【讨论】:

    猜你喜欢
    • 2015-09-21
    • 2017-11-15
    • 2021-07-25
    • 1970-01-01
    • 2013-10-04
    • 2015-03-30
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    相关资源
    最近更新 更多