We have a subscription which sends out a mail to each consultant with their planning of the coming weeks. Two weeks ago we've changed from an on-prem mail server to an O365 mail server. Since this change I have noticed that some consultants are not receiving their mail as they should. This got me looking at the RS logs and two weeks ago I had 6 people who didn't receive their email and last week it is 9. I checked the data for any typos in their mail addresses but everything was good, since I didn't change this part of the setup (and this worked normally when we still had the on-prem mail server).
notification!WindowsService_1!24f8!03/26/2021-16:00:13:: i INFO: Notification 84547a5f-930f-45e6-8085-0e738664c590 completed. Success: True, Status: Mail sent to a********.d******@*******.com, DeliveryExtension: Report Server Email, Report: OPS Individual Planning For Subscription, Attempt 0
emailextension!WindowsService_1!1a38!03/26/2021-16:00:13:: e ERROR: Error sending email. Exception: System.Net.Mail.SmtpException: Failure sending mail. ---> System.IO.IOException: Authentication failed because the remote party has closed the transport stream.
at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.Mail.SmtpConnection.Flush()
at System.Net.Mail.ReadLinesCommand.Send(SmtpConnection conn)
at System.Net.Mail.EHelloCommand.Send(SmtpConnection conn, String domain)
at System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint)
at System.Net.Mail.SmtpClient.GetConnection()
at System.Net.Mail.SmtpClient.Send(MailMessage message)
--- End of inner exception stack trace ---
at System.Net.Mail.SmtpClient.Send(MailMessage message)
at Microsoft.ReportingServices.EmailDeliveryProvider.EmailProvider.Deliver(Notification notification)
notification!WindowsService_1!1a38!03/26/2021-16:00:13:: e ERROR: Error occurred processing subscription 4ee16cfe-5e77-4da9-8433-d62a99d11ea2: Failure sending mail: Failure sending mail.
On the first line you can see a succesfull operation, but after that you can see a failure. "Authentication failed because the remote party has closed the transport stream" As of last week we are also running CU15 for SQL Server 2016 SP2.
From what I find on the web is that it's TLS related, but I have checked this and 1.2 is checked in our case. Also I would find it a bit weird if it would be TLS since this is a browser setting and the subscription is managed by SQL server itself.
If anyone has a solution for this please let me know!
Kind regards, Kevin