21

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' => 'mymail@gmail.com', 'name' => 'myname'),
  'encryption' => 'ssl',
  'username' => 'mymail@gmail.com',
  '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" ?

user3817533
  • 639
  • 3
  • 11
  • 17
  • I know this doesn't answer your question... but I would say don't use gmail for SMTP sending. Use a service like mandrill/mailgun... IE a service that is made for this type of thing. See my mandrill setup here: http://laravel.io/forum/07-06-2014-mail-with-mandrill-doesnt-work?page=1#reply-10154 Mandrill gives you 12k emails free per month. – that0n3guy Aug 11 '14 at 18:02

7 Answers7

52

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

Pathros
  • 10,042
  • 20
  • 90
  • 156
  • On May 30, 2022, this setting will no longer be available. https://support.google.com/accounts?p=less-secure-apps&hl=en – kodfire Apr 12 '22 at 15:58
32

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

thangngoc89
  • 1,400
  • 11
  • 14
14

Try this:

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

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'),
Machavity
  • 30,841
  • 27
  • 92
  • 100
Ankit Tyagi
  • 199
  • 2
  • 3
7

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.

Srinivas
  • 847
  • 11
  • 13
3

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/.

Stasik
  • 2,568
  • 1
  • 25
  • 44
-2

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.

halfer
  • 19,824
  • 17
  • 99
  • 186