我们有一个订阅,发送邮件给每个顾问,他们的未来几周的计划。两周前,我们已经从本地邮件服务器更改为O365邮件服务器。自从这一变化以来,我注意到一些顾问没有收到他们应该收到的邮件。这让我查看了RS日志,两周前我有6个人没有收到他们的电子邮件,而上周是9个。我检查了他们的邮箱地址中的任何拼写错误,但一切都很好,因为我没有更改这部分设置(当我们仍然有本地邮件服务器时,这是正常的)。
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 Server2016 SP2运行CU15。
我在网上找到的是与TLS相关的,但我已经检查过了,在我们的情况下,1.2是检查过的。另外,如果是TLS,我会觉得有点奇怪,因为这是一个浏览器设置,订阅是由SQL server自己管理的。
如果有人对此有解决方案,请让我知道!
致以良好的问候,凯文
发布于 2021-10-26 12:20:35
我遇到了同样的问题和同样的错误信息。根据评论,我也很困惑为什么有些电子邮件失败了,而另一些却没有。
this article解释了其中的原因:
从2021年9月开始,我们将拒绝一小部分使用TLS1.0进行SMTP身份验证的连接。客户端应与提交过程中可能发生的任何其他临时错误一样重试。随着时间的推移,我们将增加拒绝连接的百分比,导致发送延迟,越来越多的客户应该注意到这一点
是否确定已设置TLS 1.2?
发布于 2021-10-27 01:57:56
我可以确认,根据我对Searle1986的回答的评论,微软的guide on enable TLS 1.2解决了我的SSRS服务器的问题。
我验证了安装SSRS实例(而不是数据库*)的服务器只安装了WindowsFramework4.5版,并且我有挂起的.NET更新以将其升级到4.8版。
我还必须遵循部分,并将推荐的注册表项添加到我的服务器。在这两件事和重启服务器之后,我所有的SSRS订阅电子邮件都可以再次工作了。
因为这是一个间歇性的问题,一些电子邮件发出了,我能够在修复之前查看其中一封电子邮件的标题,并确认它使用的是TLS1.0(标题显示为"TLS1_0")。修复后,我订阅的所有电子邮件的标题中都有tls1.2(现在显示为"TLS1_2")。
https://stackoverflow.com/questions/66854430
复制相似问题