[英]SSRS Report subscription error after change to O365 mail server
我們有一個訂閱,它會向每位顧問發送一封郵件,其中包含他們未來幾周的計划。 兩周前,我們已經從本地郵件服務器更改為 O365 郵件服務器。 由於這一變化,我注意到一些顧問沒有收到他們應該收到的郵件。 這讓我查看了 RS 日志,兩周前我有 6 個人沒有收到他們的 email,而上周是 9。我檢查了他們郵件地址中的任何拼寫錯誤的數據,但一切都很好,因為我沒有t 更改這部分設置(當我們仍然擁有本地郵件服務器時,這可以正常工作)。
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.
在第一行你可以看到一個成功的操作,但之后你可以看到一個失敗。 “身份驗證失敗,因為遠程方已關閉傳輸流”截至上周,我們還在為 SQL Server 2016 SP2 運行 CU15。
從我在 web 上找到的內容來看,它與 TLS 相關,但我已經檢查了這一點,並且在我們的案例中檢查了 1.2。 此外,如果它是 TLS,我會覺得有點奇怪,因為這是一個瀏覽器設置,並且訂閱由 SQL 服務器本身管理。
如果有人對此有解決方案,請告訴我!
親切的問候,凱文
我有同樣的問題和同樣的錯誤信息。 根據評論,我也很困惑為什么有些電子郵件失敗了,而其他的卻沒有。
這篇文章解釋了原因:
從 2021 年 9 月開始,我們將拒絕一小部分使用 TLS1.0 進行 SMTP AUTH 的連接。 客戶端應與提交期間可能發生的任何其他臨時錯誤一樣重試。 隨着時間的推移,我們將增加拒絕連接的百分比,從而導致發送延遲,越來越多的客戶應該注意到這一點
您確定已設置 TLS 1.2 嗎?
根據我對 SEarle1986 的回答的評論,我可以確認,遵循 Microsoft 關於啟用 TLS 1.2 的指南解決了我的 SSRS 服務器問題。
我驗證了安裝了我的 SSRS 實例(不是數據庫*)的服務器只有 .NET 框架版本 4.5,並且我有待處理的 Windows 更新以將其升級到 4.8。
我還必須遵循配置強加密部分並將推薦的注冊表項添加到我的服務器。 在完成這兩件事並重新啟動服務器之后,我所有的 SSRS 訂閱電子郵件都恢復了工作。
因為這是一個間歇性問題,並且一些電子郵件已發送出去,所以我能夠在修復之前查看其中一封電子郵件上的 header 並確認它使用的是 TLS 1.0。 修復后,我訂閱的所有電子郵件在 header 中都有 TLS 1.2。
凱文,你有沒有解決這個問題? 我突然開始遇到同樣的問題。 SQL 服務器和 SSRS 2019 ...與您完全相同的錯誤。 只是間歇性地發生,而不是每個報告都發生,最終一些失敗的報告確實會交付。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.