【发布时间】:2019-01-09 06:18:50
【问题描述】:
我在堆栈溢出和其他地方查看了许多答案,但我仍然找不到一个很好的例子来说明如何:
在 C# 中,在引入 STARTTLS 后通过 sparkpost smtp 成功发送电子邮件。 Sparkpost 中的文档(https://www.sparkpost.com/docs/getting-started/getting-started-sparkpost/,搜索 starttls)指的是以下设置:
SMTP 主机:smtp.sparkpostmail.com 端口:587 或 2525 加密:STARTTLS 用户名:SMTP_Injection 密码:
在我当前的应用程序中,在 web.config 中,我像这样配置 sparkpost smtp:
<network host="smtp.sparkpostmail.com" port="587" userName="SMTP_Injection" password="..." enableSsl="true" />
…
直到 7 月初,这一切都很好。然后不再支持 TLS 1.0。所以我想让我们的电子邮件再次正常工作
但是 STARTTLS 是如何发挥作用的呢?
【问题讨论】:
-
"但是 STARTTLS 是如何发挥作用的?" - 这是触发 TLS 协商的 SMTP 命令。 AFAICS 不会影响协商的版本 - 这取决于您在 Windows 中启用的版本。
-
是的。我知道我可以从文档中看到这一点。但是我该如何解决这个代码。我无论如何都找不到解决方案。这就是我发布此请求的原因。我愿意,显然想使用 1.1 版。或更新。
-
理想情况下,我想将 STARTTLS 的命令添加到 web.config。有什么线索吗?或者这是通过其他方式解决的?代码?
-
我想你已经有了?您向我们展示了
<network enableSsl="true">。 Here's the documentation for that: "在这种模式下,SMTP 会话在未加密的通道上开始,然后客户端向服务器发出 STARTTLS 命令以切换到使用 SSL 的安全通信。" -
我认为您需要配置 .NET 将协商的 TLS 版本。这里有一些老问题:stackoverflow.com/q/45382254/243245stackoverflow.com/q/28286086/243245
标签: email smtp starttls sparkpost