简体   繁体   中英

SSRS Report subscription error after change to O365 mail server

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

I'm having the same issue and the same error message. As per the comments, I was also confused as to why some emails were failing but not others.

this article explains why:

Starting in September 2021, we will reject a small percentage of connections that use TLS1.0 for SMTP AUTH. Clients should retry as with any other temporary errors that can occur during submission. Over time we will increase the percentage of rejected connections, causing delays in sending that more and more customers should notice

Are you sure TLS 1.2 is set?

I can confirm, per my comment on SEarle1986's answer, that following Microsoft's guide on enable TLS 1.2 fixed my issue with my SSRS server.

I verified the server where my SSRS instance (not the database*) was installed only had .NET Framework version 4.5 and I had pending Windows updates to bring it up to 4.8.

I also had to follow the Configure for strong cryptography section and add the recommended registry keys to my server. After these two things and a restart of the server, all my SSRS subscription emails were working again.

Because it was an intermittent issue, and some of the emails went out, I was able to look at the header on one of the emails before the fix and confirm it was using TLS 1.0. After the fix, all emails for my subscriptions had TLS 1.2 in the header.

Kevin, did you ever get this resolved? I just started having the same issue all of a sudden. SQL Server and SSRS 2019...exact same error as you. Only happens intermittently, not with every report, and eventually some of the failed ones do get delivered.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM