How to Setup Laravel default password reset mail

Most web applications provide a way for users to reset their forgotten passwords. Rather than forcing you to re-implement this on each application, Laravel provides convenient methods for sending password reminders and performing password resets.

Laravel includes Auth\ForgotPasswordController and Auth\ResetPasswordController classes that contains the logic necessary to e-mail password reset links and reset user passwords. All of the routes needed to perform password resets may be generated using the php artisan make:auth Composer package:

Once you have defined the routes and views to reset your user’s passwords, you may access the route in your browser at /password/reset. The ForgotPasswordController included with the framework already includes the logic to send the password reset link e-mails, while the ResetPasswordController includes the logic to reset user passwords.

After a password is reset, the user will automatically be logged into the application and redirected to /home. You can customize the post password reset redirect location by defining a redirectTo property on the ResetPasswordController:

You just need to make some changes on .env , you can find these lines in your env file We are using Gmail SMTP Server to send Email in Laravel for this.

1:- Creating / Using an existing Gmail account to create app passwords.

I’m using my existing Gmail account, butt in case if you wish to create a new account you can go for that also, Clink on this LINK to create one

Next we need to enable 2 step Verification in Gmail as follows:

  • Login into Gmail .
  • To be able to create app passwords we need to first enable 2 Step Verification .
  • Click on the user icon and select “Google Account” .
  • Next we need to select Security from the left nav , then select “2 Step Verification” . (Doing this would ask you to login again and then Gmail would authenticate you further using OTP )
  • Now we generate the app password that we would be using in the Laravel Application , again clicking on the Google Account in the user icon ->Security ->App Passwords . (This would again ask you to login and then authenticate using OTP)
  • We need to select “Mail” as the app and “Other (Custom name)” as the device from the drop downs .
  • Selecting this would ask you to add the name of the Application for which you wish to generate the password and once added click GENERATE.
  • This would open a pop up with your 16 character app password . (Kindly copy this and keep it safe).
  • We are all set to add these detail’s to the Application.

2. Adding Gmail Account detail’s to the Laravel Application:

  • We need to edit the following in the .env file

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

with

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=youraccount@gmail.com
MAIL_PASSWORD=yourapppassword
MAIL_ENCRYPTION=ssl

  • There is no need for us to make any change in the config/mail.php file , since it would pick the values from the .env file.