gpt4 book ai didi

sockets - 在发送电子邮件之前确定 TLS 支持

转载 作者:太空宇宙 更新时间:2023-11-03 15:03:29 25 4
gpt4 key购买 nike

我们有一个可以使用 TLS 发送电子邮件的系统。但是,如果目的地支持 TLS,我们只想发送带附件的完整电子邮件。如果它不支持 TLS,我们将发送不带附件的不同消息。

我们过去只是尝试使用 TLS 发送并等待接收方“失败”返回给我们,然后发送备份消息。最近,我们转而通过 Frontbridge 中继所有传出消息。但是,如果可以,Frontbridge 将使用 TLS 发送消息,如果不能,则不使用。我们无法根据 TLS 支持自定义消息。

问题是:在 .NET C# 网络应用程序中,如何在发送任何内容之前判断目标是否支持 TLS?这样我们就可以在通过 Frontbridge 转发之前自定义消息。

我需要能够以编程方式执行此操作,但我不想将整个库添加到我们的解决方案(如 Minimalistic Telnet),因为我们不需要完整的 telnet 功能......我只需要ping 服务器并询问它支持什么!

可以简单地使用 System.Net.Sockets 东西来完成吗??

谢谢,凯文

最佳答案

是的,您需要编写部分 SMTP 协议(protocol)。

对于显式 TLS 模式:您连接、接收和发送数据,然后发送 STARTTLS 命令并查看响应是否为 220。然后您应该关闭连接。

对于隐式 TLS,您需要模拟或使用 SSL/TLS 客户端:发送初始请求、检查响应并断开连接。

由于您不想使用外部库,因此我不能向您推荐我们的 SecureBlackbox,它的 SMTP 组件可让您在十几行代码中完成所需的操作。

关于sockets - 在发送电子邮件之前确定 TLS 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16863277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com