You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用NetSSL_Win模块使POCO SecureSMTPClientSession类正常工作

问题根因

该SSL Exception: Failed to decode data: The specified data could not be decrypted报错是Poco 1.11版本NetSSL_Win模块的已知缺陷,该版本对Windows Schannel的报文处理逻辑存在错误:读取加密数据时会错误丢弃部分未处理的缓冲区内容,导致解密流程中断,所以不管是SMTP STARTTLS场景还是普通HTTPS场景都会抛出相同的解密错误。你使用的官方示例代码本身没有逻辑问题,故障完全来自库本身的bug。

解决方案

  • 优先选择升级Poco版本到1.12.0及以上,官方已经在1.12.0版本的Release中修复了该Schannel适配bug,升级后原有代码不需要做任何修改,即可正常对接smtp.gmail.com 587端口,也可正常发起通用HTTPS请求。
  • 若必须保留使用1.11版本,可手动修改源码打补丁:找到源码路径下NetSSL_Win/src/SecureSocketImpl.cpp文件,调整receiveBytes()方法的缓冲区处理逻辑,原有代码会在每次读取后清空剩余未处理的加密数据,修改为将剩余数据保留到下一次读取流程即可修复问题。

验证结果

Windows 10/11环境下,Poco 1.12.4版本的NetSSL_Win模块已验证可正常完成smtp.gmail.com 587端口的STARTTLS邮件发送流程,通用HTTPS请求也无异常。


内容的提问来源于stack exchange,提问作者cloudplay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 12:54:03