Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The server response was: 5.7.57 SMTP - Office 365

Currently we have a web form that send's emails which has stopped working months back with the migration of Office 365 at our company. I have eliminated all other code while troubleshooting and just run email portion to get the following error : "System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM ".

I have found many solutions on the web/stack overflow with the same error code, tried changing the code to proposed solutions and have had no luck.

Tried many different email aliases that are listed in our global address list with no luck for my account, different ports(25,587), different smtp addresses, and have had no luck so far.

Multiple users are stating "This code unfortunately is no longer valid with Office 365. Error message that comes up is The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM [HE1PR05CA0133.eurprd05.prod.outlook.com] " on the article linked below.

Send SMTP email using System.Net.Mail via Exchange Online (Office 365)

My code seen below.

    Dim mail As MailMessage = New MailMessage
    mail.From = New MailAddress("[email protected]")
    mail.To.Add("[email protected]")
    mail.Subject = "Test"
    mail.IsBodyHtml = False
    mail.Body = "Test"

    Dim SmtpServer As SmtpClient = New SmtpClient

    SmtpServer.Host = "smtp.office365.com"
    SmtpServer.Port = 587
    SmtpServer.UseDefaultCredentials = False
    SmtpServer.Credentials = New System.Net.NetworkCredential("MyEmail", "MyPass")
    SmtpServer.DeliveryMethod = SmtpDeliveryMethod.Network
    SmtpServer.EnableSsl = True
    SmtpServer.TargetName = "STARTTLS/smtp.office365.com"
    Try
        SmtpServer.Send(mail)
    Catch ex As Exception
        Response.Write(ex.ToString)
    End Try

As it seems this is happening to many people, I would like to know what they are doing to resolve it?

like image 323
kwith Avatar asked Apr 11 '19 21:04

kwith


2 Answers

I resolved this issue by creating app password for my outlook365 account. You can create/manage app password as following.

Go to My Account >> Security & Privacy >> Additional Security Verification >> Create and manage app passwords

Create an app password and use it in your code. Hope this will solve your issue

like image 174
Muhammad Salman Wagh Avatar answered Oct 02 '22 08:10

Muhammad Salman Wagh


To enable app-password you must have two factor authentication on the account and the administrator (if your account is in an organization) must allow app-passwords on the account (or in the organization) I'm not a 365 admin and don't know all the settings.

  • However, we had a similar problem where the sender account did not have the setting "Modern Authentication" enabled for SMTP AUTH.
  • note that this worked for a long time and suddenly stopped (not sure if Microsoft did some security tightening in late February 2021)

Modern Authentication was enabled for Outlook etc (clients?), but not for "SMTP AUTH", "IMAP", and "POP" (I assume this is the "defaults" and recommendation is not to enable Modern Authentication unless you need it.

  • see the two articles below.

https://docs.microsoft.com/en-us/exchange/clients-and-mobile-in-exchange-online/authenticated-client-smtp-submission Virtually all modern email clients that connect to Exchange Online mailboxes in Office 365 or Microsoft 365 (for example, Outlook, Outlook on the web, iOS Mail, Outlook for iOS and Android, etc.) don't use SMTP AUTH to send email messages.

Therefore, we highly recommend that you disable SMTP AUTH in your Exchange Online organization, and enable it only for the accounts (that is, mailboxes) that still require it. There are two settings that can help you do this: An organization-wide setting to disable (or enable) SMTP AUTH.
A per-mailbox setting that overrides the tenant-wide setting.

Also good to know about. Will list number of "smtp auth clients". https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/mfi-smtp-auth-clients-report?view=o365-worldwide

like image 35
JimiSweden Avatar answered Oct 02 '22 09:10

JimiSweden