我正在尝试在我的Laravel 5.1应用程序中实现密码重置。我遵循文档(http://laravel.com/docs/5.1/authentication#resetting-passwords)进行操作,但是当我单击我的'/password/email/'上的“重置密码”按钮时,没有任何邮件被发送。
我故意输入了错误的电子邮件地址,我得到了适当的错误提示,但是当我输入正确的电子邮件地址时,没有邮件被发送,并且我也没有收到任何类型的消息或邮件。
我已经查看了我的数据库,似乎创建了一个密码重置令牌,只是没有发送邮件。
我的电子邮件配置正常工作,因为我的应用程序的其他部分可以正确地发送电子邮件,只有这个部分无法发送电子邮件。如果您能提供帮助,将不胜感激,因为我不知道还要检查什么。
Michael
routes.php: `
我故意输入了错误的电子邮件地址,我得到了适当的错误提示,但是当我输入正确的电子邮件地址时,没有邮件被发送,并且我也没有收到任何类型的消息或邮件。
我已经查看了我的数据库,似乎创建了一个密码重置令牌,只是没有发送邮件。
我的电子邮件配置正常工作,因为我的应用程序的其他部分可以正确地发送电子邮件,只有这个部分无法发送电子邮件。如果您能提供帮助,将不胜感激,因为我不知道还要检查什么。
Michael
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>
resources/views/emails/password.blade.php:
Click here to reset your password: {{ url('password/reset/'.$token) }}
更新 我已经在postEmail函数中添加了一个日志。
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
}
config/mail.php
和.env
文件中的邮件设置。 - maiorano84config/mail.php
下,代码如下:'driver' => env('MAIL_DRIVER', 'mandrill')
。 - Michael