smtp relay - g suite - gmail with custom domain email - laravel

I have a created an account from G Suite - test#my-domain.com. I have enabled 2-factor authentication and created app-specific password too.
Also, I read that I need to allow less secure apps but I can't as I did 2-factor auth.
Also, my domain is working on ssl certificate from LetsEncrypt.
This is my config file:
MAIL_DRIVER=smtp
MAIL_HOST=smtp-relay.gmail.com // or smtp.gmail.com
MAIL_PORT=465 // or 587
MAIL_USERNAME=test#my-domain.com
MAIL_PASSWORD=unkdgapoymfgcwxu << app specific password
MAIL_ENCRYPTION=ssl // or tls
MAIL_FROM_ADDRESS=test#my-domain.com
MAIL_FROM_NAME=Support
From admin dashboard, I ticked the 'SMTP-relay' setting:
Allowed senders: Only addresses in my domains
Only accept mail from the specified IP addresses: No
Require SMTP Authentication: Yes
Require TLS encryption: No
...and I also added 'Support' as 'Send mail as' input in Gmail Settings > Accounts
I am stuck and keep getting error:
Expected response code 250 but got code "535", with message "535-5.7.8 Username and Password not accepted. Learn more at 535 5.7.8 https://support.google.com/mail/?p=BadCredentials i203sm350313wmf.0 - gsmtp
I have tried all different combinations but I couldn't move any further than this error. What am I doing wrong?
I know there are many questions related this topic but I couldn't find anything working for specifically G Suite - with custom domain
I am not sure if G Suite is any different than Gmail, but when I tried with personal gmail account it works. So, if I try for my personal gmail with this config, it works:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=me#gmail.com
MAIL_PASSWORD=utrpokvkvwluwujx < one time password
MAIL_ENCRYPTION=ssl

I've faced similar problem and got it solved by disabling 2FA, then enabling access for less secure apps. You have to use your normal password afterwards.
While I'm not very happy with it securitywise, at least it's something that works.

This single step worked for me... No 2-step verification. As I had created a dummy account for my local development, so I was OK with this setting. Make sure you only do this if your account contains NO personal or any critical data. This is just another way of tackling this error and NOT secure.
I turned ON the setting to alow less secured apps to be allowed access. Form here : https://myaccount.google.com/lesssecureapps

Related

Gmail smtp not working with only one email

I am using gmail smtp in my laravel, It was working fine till yesterday but it suddenly stopped, I am getting this error
Failed to authenticate on SMTP server with username "email#gmail.com" using 3 possible authenticators. Authenticator LOGIN returned Expected response code 235 but got code "535", with message "535-5.7.8 Username and Password not accepted
Less secure apps was already on so i added 2 factor auth and created an app password but still not working, I created a test email and it worked fine, why is not working with my first email
This is my setting in env
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=email#gmail.com
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
MAIL_EMAIL_ADDRESS=email#gmail.com
I also tried by adding double quotes, but still not wokring,
Can anyone please help
After the removal of less secure apps. You can no longer connect to googles smtp server using the actual password of the users gmail account.
YOu have two options.
enable 2fa on the google account and create an apps password. The apps password can then be used in place of the password in your code.
Switch to using Xoauth2.

"Failed to authenticate on SMTP server" after more than 100 emails

I'm trying to send about 500 emails with Laravel, my provider is Gmail.
The first 150 emails (more or less) are sent correctly, but after I receive this error:
"Failed to authenticate on SMTP server with username "XXXXXXX" using 3 possible authenticators. Authenticator LOGIN returned Expected response code 250 but got an empty response. Authenticator PLAIN returned Expected response code 250 but got an empty response. Authenticator XOAUTH2 returned Expected response code 250 but got an empty response."
My .env is
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_ENCRYPTION=ssl
MAIL_USERNAME=...
MAIL_PASSWORD=...
I also tried to wait for about 5 seconds between each email, but it doesn't work.
Anyone knows how I can handle this?
Thank you
Try to use the next settings:
MAIL_PORT=465
MAIL_ENCRYPTION=ssl
Enable 2FA in your Google account and create an app password.
Use it in MAIL_PASSWORD
I had a similar problem, and here is how I solved it.
the Google mail service may have blocked emails from being sent from your app. Google surely viewed this as a security threat. you should definitely receive a security alert in your mailbox.
You just have to admit that it was you who tried to access the account or just change your gmail password. after that please change the info in the .env file and i think it will work.
try to change your password on gmail
and also in your .env file

send email in laravel by gmail smtp server

I want to use Gmail to send emails through Laravel.
When I apply through localhost, the email is sent correctly.
But it gives the following error on the server and the email is not sent.
local.ERROR: Swift_TransportException: Connection could not be established with host smtp.gmail.com $:stream_socket_client(): unable to connect to tcp://smtp.gmail.com:587 (Connection timed out)
Hello I had the same problem probably your solution is like that, because this helps me to resolved my issue
Create a custom app in you Gmail security settings.
Log-in into Gmail with your account
Navigate to https://security.google.com/settings/security/apppasswords
In 'select app' choose 'custom', give it an arbitrary name and press generate
It will give you 16 chars token.`
Use the token as password in combination with your full Gmail account and two factor authentication will not be required.
Note: The link in step 2 will work only if you have 2-factor-authentication enabled.
For Refference: link
use mail trap for testing
link https://mailtrap.io/ where you get your all smtp credential and put in .env file

Sending Email using Outlook / Office365 with Laravel - Failed to authenticate on SMTP server

I'm trying to send an email with our Laravel app using Office365/Outlook. It has worked well with gmail but when I switched over to Office365, the following error appears:
Failed to authenticate on SMTP server with username
"xxxxxx#companyname.co" using 2 possible authenticators. Authenticator
LOGIN returned Expected response code 235 but got code "535", with
message "535 5.7.3 Authentication unsuccessful
[HKAPR03CA0035.apcprd03.prod.outlook.com]
". Authenticator XOAUTH2 returned Expected response code 235 but got code "535", with message "535 5.7.3 Authentication unsuccessful
[HKAPR03CA0035.apcprd03.prod.outlook.com]
".
This is what I have in my .env file:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.office365.com
MAIL_PORT=587
MAIL_USERNAME=xxxxxx#companyname.co
MAIL_PASSWORD=emailPassword
MAIL_ENCRYPTION=tls
MAIL_SMTPAuth=true
MAIL_FROM_NAME=CompanyName
MAIL_FROM_ADDRESS=xxxxxx#companyname.co
*note: this is not the real username, password and from address.
I also tried changing the port to 25 but I get the same error
I'm using a dedicated support email from my company. And from what I confirmed with our IT, the support email does not have 2 factor authentication and the "Authenticated SMTP" setting is also enabled via the admin panel of Office365 so I don't know what seems to be the problem.
Keep in mind that for the new tenants, Microsoft turns SMTP authentication off, and it needs to be explicitly enabled. Please see
Enable or disable authenticated client SMTP submission (SMTP AUTH) in Exchange Online
as well as
What are security defaults?
I had the same issue and I called Microsoft support. They instructed me to change some security properties in Microsoft Azure. Here is my answer.
You have to enable the 2 factor authentication, the go to your account settings and create an application password. Then you have to use the new application password in your code. Check this link

Laravel - Failed to authenticate on SMTP server with username

Using Laravel-5.8 to send notification, I am getting this error:
Failed to authenticate on SMTP server with username "noblemfd#gmail.com" using 3 possible authenticators. Authenticator LOGIN returned Expected response code 23 ▶
535 5.7.8 https://support.google.com/mail/?p=BadCredentials n13sm8684140wmd.21 - gsmtp
". Authenticator PLAIN returned Expected response code 235 but got code "535", with message "535-5.7.8
Username and Password not accepted. Learn more at
535 5.7.8 https://support.google.com/mail/?p=BadCredentials n13sm8684140wmd.21 - gsmtp
". Authenticator XOAUTH2 returned Expected response code 250 but got code "535", with message "535-5.7.8
Username and Password not accepted. Learn more at
535 5.7.8 https://support.google.com/mail/?p=BadCredentials n13sm8684140wmd.21 - gsmtp
It was working before, but suddenly began to mis-behave
this is my .env
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=noblemfd#gmail.com
MAIL_PASSWORD=****
MAIL_ENCRYPTION=ssl
What do I do?
Thanks
I have the same your problem today. For months the smtp has been working well and suddently today it gives me the same your error.
For what it worth I simply solved, re-generating the password in google Account -> Security -> App passwords.
It's not the first time this happend to me. Maybe it's some sort of Google protection... but I didn't found evidence of that anywhere. Anyway it's very annoying.
What I wonder is how to catch this kind of error so that we can intervene on time.
I had the same problem under symfony. I went into my google account and generated an application password via this link
generated password app
Attention you will receive a password with several characters.
Example: 'azer tyui opq'
you will need to replace the spaces with the url code.
Example: azer%20tyui%20opq
In my env file.
For me that to work
1- You must enable two-step verification from the Google Account section, security section, Signing in to Google section.
2- After completing the two-step verification, in the same Signing in to Google section, go to the App passwords section and create a password for the service or device or program you want (PHPMailer or anything else). (On the App passwords page, on the section Click Select app and choose Other option, a text field will be displayed and you should enter PHPMailer or a desired name and then press the Generate button, it will give you a 16 character password.)
3- Copy the displayed password and enter the PHPMailer password in the coding section.

Resources