如何在没有 s_client 的情况下将 STARTTLS 与 OpenSSL 结合使用

如何在没有 s_client 的情况下将 STARTTLS 与 OpenSSL 结合使用

我正在尝试创建一个电子邮件客户端作为学习体验。大多数现代电子邮件服务器都需要使用 TLS。使用 OpenSSL 时s_client,我可以使用标志-starttls,这样s_client就可以自动与服务器进行 TLS 协商。但是,当使用原始 C API 而不是 openssl 实用程序时,我不确定如何实现协商。

据我所知,我必须首先从不安全的套接字连接到服务器的 SMTP over TLS 端口,调用命令STARTTLS,然后通过执行 TLS 协商切换到安全套接字。这样对吗?

相关内容