我正在尝试连接到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)服务器一起正常工作。此外,Outlook在检查SSL时正常发送邮件,在端口587上发送邮件,因此它可能与OpenSSL相关。任何人都可以帮我解开这个谜团吗?我错过了设置的东西吗?
答案 0 :(得分:5)
与GMail一样,Live.com的端口587要求客户端连接未加密并发送STARTTLS
命令,然后再启动SSL / TLS握手。在Indy 10中,您可以在连接之前将TIdSMTP.UseTLS
属性设置为utUseExplicitTLS
。听起来你将UseTLS
属性设置为utUseImplicitTLS
(这是GMail端口465所需的)。