gpt4 book ai didi

c - SMTP:SSL_connect 失败但没有错误

转载 作者:太空宇宙 更新时间:2023-11-04 03:48:02 27 4
gpt4 key购买 nike

我在使用 openssl 库时遇到问题。我在发送 EHLOSTARTTLS 后调用以下函数:

SSL_CTX *ctx = NULL;
SSL *ssl = NULL;

void CreateTLSSession(int sockfd)
{
printf("///////////////creating TLS Session/////////////////////\n");
SSL_library_init();
SSL_load_error_strings();
OpenSSL_add_all_algorithms();
ctx = SSL_CTX_new(SSLv23_client_method());
if (ctx == NULL)
{
printf("failed to initialize context\n");
return;
}
SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2);
ssl = SSL_new(ctx);
if (!SSL_set_fd(ssl, sockfd))
{
printf("failed to bind to socket fd\n");
return;
}
if (SSL_connect(ssl) < 1)
{
ERR_print_errors_fp(stdout);
fflush(stdout);
printf("SSL_connect failed\n");
return;
}
}

然而,SSL_connect 失败但不打印任何错误!

这是我的代码的输出:(包括服务器的回复)

220 mx.google.com ESMTP x3sm39000551eep.17 - gsmtp 




//////////////////////////EHLO//////////////////////////
250-mx.google.com at your service, [80.149.109.201]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250 CHUNKING




//////////////////////////STARTTLS//////////////////////////
220 2.0.0 Ready to start TLS




///////////////creating TLS Session/////////////////////
SSL_connect failed

所以 ERR_print_errors_fp(stdout) 没有做任何事情!

知道为什么会这样吗?

顺便说一句,我正在尝试连接到 smtp.gmail.com:587

最佳答案

我没有看到大量私钥文件或证书文件。使用 SSL_CTX_use_certificate_file 和 SSL_CTX_use_PrivateKey_file。

关于c - SMTP:SSL_connect 失败但没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22834191/

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