I’ve following configuration in environment file,
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
[email protected]
MAIL_PASSWORD='mypassword'
MAIL_ENCRYPTION=ssl
I’ve made user registration from RegistrationController
and send email to verify that user. It works perfectly in the local LAMP server with ubantu. But, following error is encountered in C Panel.
Swift_TransportException Connection could not be established with
host smtp.gmail.com [Network is unreachable #101]
Here is the register function in controller,
protected function register(Request $request)
{
/** @var User $user */
$validatedData = $request->validate([
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
]);
try {
$validatedData['password'] = bcrypt(array_get($validatedData, 'password'));
$validatedData['activate_code'] = str_random(30).time();
if($request->has('company') && $request->company=='on')
{
$validatedData['role_id'] = 4;
}
else
{
$validatedData['role_id'] = 5;
}
$user = app(User::class)->create($validatedData);
} catch (Exception $exception) {
logger()->error($exception);
return redirect()->back()->with('alert-danger', 'Unable to create new user.');
}
$user->notify(new UserRegisteredSuccessfully($user));
return redirect()->back()->with('alert-success', 'Successfully created a new account. Please check your email and activate your account.');
}
I’ve already seen such issues and many question but none works in my case. Any kind of help is appreciated.
4
Answers
Update your
.env
file like:firstable, once you have created gmail account for mailing from your website, You must give a permission your gmail account for mailing from other app.
to do this…
1) go to your gmail account and click on “
settings -> FORWARDING and POP/IMAP
” link. And follow these instructions like below picture…2) go to this link
https://myaccount.google.com/lesssecureapps?utm_source=google-account&utm_medium=web
and enable this like below picture…
3) make sure thst if your web app is working on http protocol use
MAIL_ENCRYPTION=tls
andMAIL_PORT=587
otherwiseMAIL_ENCRYPTION=ssl
andMAIL_PORT=465
You need to do some changes with your .env config and with your account
1) Change mail port to 587 and encryption
2) Enable IMAP in your email account to use that protocol
3) Enable access for the app to your account
change
MAIL_DRIVER=smtp
toMAIL_DRIVER=sendmail
After completion of
.env
edit, enter this command in your terminal for clear cache:php artisan config:cache