user3817533
user3817533

Reputation: 659

Laravel Gmail not working, "Username and Password not accepted. Learn more..."

When I try to send an e-mail through my website running Laravel 4, I get this exception:

{"error":{"type":"Swift_TransportException","message":"Expected response code 250 but got code \"535\", with message \"535-5.7.8 Username and Password not accepted. Learn more at\r\n535 5.7.8 http:\/\/support.google.com\/mail\/bin\/answer.py?answer=14257 y70sm14744455qgd.3 - gsmtp\r\n\"","file":"\/var\/www\/vendor\/swiftmailer\/swiftmailer\/lib\/classes\/Swift\/Transport\/AbstractSmtpTransport.php","line":386}}

Here is my mail config:

return array(
  'driver' => 'smtp',
  'host' => 'smtp.gmail.com',
  'port' => 465,
  'from' => array('address' => '[email protected]', 'name' => 'myname'),
  'encryption' => 'ssl',
  'username' => '[email protected]',
  'password' => 'lol',
  'sendmail' => '/usr/sbin/sendmail -bs',
  'pretend' => false,
);

I've tried the disable link i've found by googling this issue except it didn't make a difference.

Is there a way to tell Google "stop blocking this IP, it's me" ?

Upvotes: 21

Views: 59009

Answers (7)

Pathros
Pathros

Reputation: 10730

I tried the same thing and got the same error. So i personally checked my gmail account and i had a message from Gmail itself letting me know that they'd blocked an access attempt to my email account.

They showed an option to disable this security setting by visiting https://www.google.com/settings/security/lesssecureapps.

Things will actually be more straight forward if you visit that link already logged in into your Gmail account.

Warning

As @kodfire stated:

On May 30, 2022, this setting will no longer be available.

support.google.com/accounts?p=less-secure-apps&hl=en

Upvotes: 52

user11313678
user11313678

Reputation: 1

Remove the @gmail.com from username, already you mentioned smtp. So no need @gmail.com on your username. I'm 100% sure it is your problem, because I had that problem.

Upvotes: -2

Ankit Tyagi
Ankit Tyagi

Reputation: 199

https://www.google.com/settings/security/lesssecureapps and active it. https://accounts.google.com/b/0/DisplayUnlockCaptcha and active it.

'port' => env('MAIL_PORT', 587), <br>
'encryption' => env('MAIL_ENCRYPTION', 'tls'),

Upvotes: 12

dilbadil
dilbadil

Reputation: 316

Try this:

  1. Change port to 587
  2. Goto gmail setting https://www.google.com/settings/security/lesssecureapps and active it.

Upvotes: 14

Srinivas
Srinivas

Reputation: 909

I had lot of issues finding answer for this. Then after doing lot of trial and error i have found an solution to this. Most of the solution above worked for other but it help me upto 50%.

So, This is how it worked for me (100%):

  1. Activate 2 step Verification in google
  2. Now you will be able to create app. Open it.
  3. Create new app (other app) and give your app name.
  4. Now generate password.

Next in laravel, Goto .env file and change

    MAIL_USERNAME= 'App Name you created'
    MAIL_PASSWORD= 'Generated Password for that app'

This should be able to send emails from your gmail account. Please leave a comment if it doesn't works for you.

Upvotes: 8

thangngoc89
thangngoc89

Reputation: 1400

Go to this link and disable unlock Captcha https://accounts.google.com/b/0/DisplayUnlockCaptcha

Upvotes: 32

Stasik
Stasik

Reputation: 2614

Did you activate 2-step google authentification? If so, you need to define a new "application-specific password" password: http://www.google.com/landing/2step/.

Upvotes: 3

Related Questions