Laravel 5密码重置电子邮件未发送

时间:2015-11-27 17:22:23

标签: php email authentication laravel-5

我正在尝试在Laravel 5.1应用上实施密码重设。我已经按照文档(http://laravel.com/docs/5.1/authentication#resetting-passwords)来完成这项工作。但是,每当我点击/password/email/上的“重置密码”按钮时,都不会发送任何电子邮件。

我故意输入了错误的电子邮件,但我收到了相应的错误,但是当我输入正确的电子邮件时,没有发送电子邮件,我没有收到任何类型的邮件或任何电子邮件。

我查看了我的数据库,看起来好像正在创建密码重置令牌,只是没有发送电子邮件。

我的电子邮件配置工作正常,因为我的应用程序的其他部分正确发送电子邮件,只有这一部分没有发送电子邮件。任何帮助将不胜感激,因为我没有其他什么可以检查。

迈克尔

routes.php文件: `

// Password reset link request routes...
Route::get('password/email', ['as' => 'password/email', 'uses' => 'Auth\PasswordController@getEmail']);
Route::post('password/email', 'Auth\PasswordController@postEmail');

    // Password reset routes...
    Route::get('password/reset/{token}', 'Auth\PasswordController@getReset');
    Route::post('password/reset', 'Auth\PasswordController@postReset');

password.blade.php:

<form id="contact-form" class="contact-section" method="POST" action="/password/email">
            <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
            <span class="pre-input"><i class="fa fa-envelope-o"></i></span>
            <input class="name plain buffer" type="email" name="email" placeholder="Email" value="{{ old('email') }}">
            <input id="send" class="plain button yellow" type="submit" value="Reset Password">
              @foreach($errors->all() as $error)
              <font size="3" color="red">{{ $error }}</font>
              @endforeach

          </form> 

资源/视图/电子邮件/ password.blade.php:

Click here to reset your password: {{ url('password/reset/'.$token) }}

更新 我已经在postEmail函数中添加了一个Log。

    public function postEmail(Request $request)
{
    $this->validate($request, ['email' => 'required|email']);

    $response = Password::sendResetLink($request->only('email'), function (Message $message) {
        $message->subject($this->getEmailSubject());
 Log::info('Password Reset Execute -1 '); //Does work here


    });

    switch ($response) {

        case Password::RESET_LINK_SENT:
            return redirect()->back()->with('status', trans($response));

        case Password::INVALID_USER:
            return redirect()->back()->withErrors(['email' => trans($response)]);
    }

    Log::info('Password Reset Execute - 2'); //Will not work here
}

2 个答案:

答案 0 :(得分:3)

如果问题是发件人无效,请确保传递正确的发件人

$message->from('hello@app.com', 'Your Application');

答案 1 :(得分:3)

我在.env中添加了这些内容,密码重置再次正常工作

MAIL_FROM_ADDRESS=xx@xx.xx
MAIL_FROM_NAME=xxxx