laravel sengrid random authentication failure when sending emails with attachment - laravel

We are able to send out emails but a problem seems to occur when the email has an attachment.
we're getting this authentication error which is weird because we are able to send out no attachment emails so I'm not sure why it suddenly fails to authenticate.
Symfony\Component\Mailer\Exception\TransportException: Failed to
authenticate on SMTP server with username "myemail#email.com" using
the following authenticators: "LOGIN", "XOAUTH2". Authenticator
"LOGIN" returned "Expected response code "235" but got code "535",
with message "535 5.7.139 Authentication unsuccessful, the user
credentials were incorrect. [xxx.xxx.PROD.OUTLOOK.COM]".".
Authenticator "XOAUTH2" returned "Expected response code "235" but got
code "535", with message "535 5.7.3 Authentication unsuccessful
[xxx.xxx.PROD.OUTLOOK.COM]".". in
/var/www/project/vendor/symfony/mailer/Transport/Smtp/EsmtpTransport.php:198
Is this something related to our SendGrid configuration that we've missed? or could this be a server-related problem since our test server is able to send out emails with attachments fine? just this one live server is having the issue
Our test server is also using the same SendGrid account with a different API key and is able to send out emails with attachments okay.
We are using ubuntu and nginx

Related

"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

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

How to fix Email Authentication issue in laravel?

I am sending email when user register but when I run my page it is showing me an error like this
Swift_TransportException: Failed to authenticate on SMTP server with
username "support#project.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.
if you are in development / local environment you can use service like mailtrap and put credentials in .env file

Why I When I using mailgun for sending from yahoo mail or sending to yahoo mail it not works?

when i using gmail email it can be reset and set the from recipents
but when using yahoo mail the set from doent send and reset to yahoo address was error with
Expected response code 250 but got code "554", with message "554 Sandbox subdomains are for test purposes only. Please add your own domain or add the address to authorized recipients in Account Settings. "
Did you check out this page?
If this is the cause you could try sending an text-only e-mail for testing purposes, see if that does works.

How to catch mailgun errors in laravel

I have mailgun set up and working just fine. The problem occurs when I try to send an email to an email which doesn't exists. Use can put any email so if the email is correct mailgun sends it perfectly. But if it is incorrect it generates an error in laravel applications
Swift_TransportException (554)
Expected response code 250 but got code "554", with message "554 Free
accounts are for test purposes only. Please upgrade or add the address to
authorized recipients in Account Settings.
How can I catcth this exception in laravel without generating errors?

Resources