我正在尝试连接到 smtp.live.com 发送电子邮件(live.com 自 2009 年以来显然支持免费的 pop3/smtp,但这对我来说完全是新闻)。
当我尝试连接到 smtp.live.com 端口 587 时,会发生以下情况:
Method sslvSSLv2 - timeout (obviously the server does not support SSL2)
Method sslvSSLv3 - Error connecting with SSL. - error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
Method sslvSSLv23 - Error connecting with SSL. - error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Method sslvTLSv1 - Error connecting with SSL. - error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
我对 sslvSSLv23 和 sslvTLSv1 使用相同的代码,它可以在 gmail smtp(smtp.gmail.com,端口 465)服务器上正常工作。另外,当检查 SSL 并在端口 587 上时,Outlook 会正常发送邮件,因此这可能与 OpenSSL 有关。谁能帮我解开这个谜团吗?我是不是错过了什么设置?
与 GMail 一样,Live.com 的端口 587 要求客户端以未加密的方式连接并发送STARTTLS
命令,然后启动 SSL/TLS 握手。在 Indy 10 中,您可以通过设置TIdSMTP.UseTLS
财产给utUseExplicitTLS
连接之前。听起来你有UseTLS
属性设置为utUseImplicitTLS
相反(这是 GMail 端口 465 所需的)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)