我在ASP.NET 4.0框架上用VB编写了一个(长时间(运行的Web应用程序。
我们使用SparkPost发送电子邮件已经有一段时间了,但几天后(不确定确切日期(,电子邮件功能停止工作,并开始显示以下错误消息
身份验证失败,因为远程方已关闭传输流。
我们使用MailKit版本1.22(最新支持ASP.NET 4.0(进行连接并发送电子邮件,如下所示:
Using objMessage As New MailMessage(from, to, title, message)
objMessage.IsBodyHtml = True
'https://github.com/jstedfast/MailKit
Using client As New MailKit.Net.Smtp.SmtpClient()
''accept all SSL certificates (in case the server supports STARTTLS)
client.ServerCertificateValidationCallback = Function(sender, certificate, chain, errors)
Return True
End Function
''Note: since we don't have an OAuth2 token, disable the XOAUTH2 authentication mechanism.
client.AuthenticationMechanisms.Remove("XOAUTH2")
client.AuthenticationMechanisms.Add("AUTH LOGIN")
client.Connect("smtp.sparkpostmail.com", 587, SecureSocketOptions.StartTls)
''Note: only needed if the SMTP server requires authentication
client.Authenticate("SMTP_Injection", "**********************")//the asterixes are the API key
client.Send(objMessage)
client.Disconnect(True)
End Using
End Using
SparkPost文档希望我使用这个带有StartTLS的设置。
我读到SparkPost最近停止支持TSL1.0。这会是罪魁祸首吗?
.NET Framework 4.0使用SSL3.0或TLS1.0作为默认协议。解决此问题的最简单方法是将现有应用程序升级到.NET Framework 4.6.2。升级后,您的应用程序将使用TLS1.2协议作为默认协议。你可以在这里阅读更多关于