Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Expected response code 220 but got code "", with message "" in Laravel

I am using Laravel Mail function to send email. The following is my app/config/mail.php file settings.

'driver' => 'sendmail', 'host' => 'smtp.gmail.com', 'port' => 587, 'from' => array('address' => '[email protected]', 'name' => 'MyName'), 'encryption' => 'tls', 'username' => 'myUsername', 'password' => "password", 'sendmail' => '/usr/sbin/sendmail -bs', 'pretend' => false, 

Controller Mail Method

//Send Mail      Mail::send('sendMail', array('key' => 'value'), function($message) {     $message->to('[email protected]', 'Sender Name')->subject('Welcome!'); }); 

When I run the code it gives me following error message:

Swift_TransportException

Expected response code 220 but got code "", with message ""

I have created a SendMail.php file in view which contains some data.

How do I resolve this error message?

like image 650
dev90 Avatar asked Sep 21 '15 11:09

dev90


2 Answers

This problem can generally occur when you do not enable two step verification for the gmail account (which can be done here) you are using to send an email. So first, enable two step verification, you can find plenty of resources for enabling two step verification. After you enable it, then you have to create an app password. And use the app password in your .env file. When you are done with it, your .env file will look something like.

MAIL_DRIVER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=<<your email address>> MAIL_PASSWORD=<<app password>> MAIL_ENCRYPTION=tls 

and your mail.php

<?php  return [     'driver' => env('MAIL_DRIVER', 'smtp'),     'host' => env('MAIL_HOST', 'smtp.gmail.com'),     'port' => env('MAIL_PORT', 587),     'from' => ['address' => '<<your email>>', 'name' => '<<any name>>'],     'encryption' => env('MAIL_ENCRYPTION', 'tls'),     'username' => env('MAIL_USERNAME'),     'password' => env('MAIL_PASSWORD'),     'sendmail' => '/usr/sbin/sendmail -bs',     'pretend' => false,  ]; 

After doing so, run php artisan config:cache and php artisan config:clear, then check, email should work.

like image 129
Sid Avatar answered Sep 28 '22 00:09

Sid


In my case I had to set the

MAIL_DRIVER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=465           <<<<<<<------------------------- (FOCUS THIS) MAIL_USERNAME=<<your email address>> MAIL_PASSWORD=<<app password>>  MAIL_ENCRYPTION= ssl    <<<<<<<------------------------- (FOCUS THIS) 

to work it.. Might be useful. Rest of the code was same as @Sid said.

And I think that editing both environment file and app/config/mail.php is unnecessary. Just use one method.

Edit as per the comment by @Zan

If you need to enable tls protection use following settings.

MAIL_PORT=587 MAIL_ENCRYPTION= tls   

See here for some other gmail settings

like image 20
Gayan Kavirathne Avatar answered Sep 27 '22 23:09

Gayan Kavirathne