[英]Laravel - How to check reset password email sent successfully to the user?
我的PasswordController.php
具有以下函数postEmail
,并在用户尝试重置密码时调用。
/**
* Send a reset link to the given user.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function postEmail(Request $request)
{
//echo Input::get('ID'); die;
$this->validate($request, ['ID' => 'required|email']);
// Pass data to reset password mail template
view()->composer('emails.password', function($view) {
$view->with([
'UserProduct1' => 'UserProduct1',
'UserProduct2' => 'UserProduct2',
]);
});
$response = Password::sendResetLink($request->only('ID'), function (Message $message) {
$message->subject($this->getEmailSubject());
});
switch ($response) {
case Password::RESET_LINK_SENT:
return redirect()->back()->with('status', trans($response));
case Password::INVALID_USER:
return redirect()->back()->withErrors(['ID' => trans($response)]);
}
}
有什么方法可以检查,重置发送或不发送给laravel
用户的laravel
。
任何想法?
谢谢。
如果您使用的是Laravel 5.1 Mailer类,则很容易检测是否已发送邮件
Sending Mail
<?php
namespace App\Http\Controllers;
use Mail;
use App\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class UserController extends Controller
{
/**
* Send an e-mail reminder to the user.
*
* @param Request $request
* @param int $id
* @return Response
*/
public function sendEmailReminder(Request $request, $id)
{
$user = User::findOrFail($id);
$mailSend = Mail::send('emails.reminder', ['user' => $user], function ($m) use ($user) {
$m->from('hello@app.com', 'Your Application');
$m->to($user->email, $user->name)->subject('Your Reminder!');
});//Here it returns 0 if email not send
if ($mailSend === 0)
{
//Your Code
}
}
}
在这里,当您调用Mail::send
,它将调用此方法https://github.com/laravel/framework/blob/5.1/src/Illuminate/Mail/Mailer.php#L157然后将调用sendSwiftMessage
https:// github .com / laravel / framework / blob / 5.1 / src / Illuminate / Mail / Mailer.php#L388 。 然后它将调用swiftmailer的send
方法https://github.com/swiftmailer/swiftmailer/blob/5.x/lib/classes/Swift/Mailer.php#L74&如您所见,失败时将返回$ sent变量,即如果失败,则为0。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.