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