我正在使用 Winsock2 API 在 C++ 中编写一个电子邮件客户端,以通过 SMTP 从 Gmail 帐户发送电子邮件。我没有使用任何其他第三方库。
我已在端口 587(用于 TLS)上连接到 Gmail 服务器并发送了基本的 EHLO 和 STARTTLS 命令,但我的问题是,在发送 STARTTLS 命令后我应该具体发送哪些数据?
为清楚起见,这是服务器输出:
显然 TLS 握手在 STARTTLS 命令之后进行,但是在 TLS 握手期间必须发送的第一条和后续数据是什么?从我读过的内容来看,它应该是交换安全证书等的二进制数据,但我找不到具体应该首先发送哪些数据。
我已经搜索了许多与此类似的问题,但我没有找到一个答案,说明必须在 STARTTLS 之后发送的特定数据。我知道 OpenSSL 的存在,我不会接受任何告诉我安装它的答案。