smtp.live.com和TIdSmtp(Indy,Delphi)的SSL支持

8

我正在尝试连接smtp.live.com发送邮件(据称自2009年起live.com支持免费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

我在gmail smtp服务器(smtp.gmail.com,端口465)上使用相同的代码,并使用sslvSSLv23和sslvTLSv1正常工作。此外,在启用SSL并将端口设置为587时,Outlook也可以正常发送邮件,因此可能与OpenSSL有关。有谁能帮我解决这个谜团吗?我错过了设置什么吗?

1个回答

5

与GMail类似,Live.com的端口587要求客户端连接未加密并发送STARTTLS命令,然后才能启动SSL/TLS握手。在Indy 10中,您需要在连接之前将TIdSMTP.UseTLS属性设置为utUseExplicitTLS来实现此操作。听起来您已经将UseTLS属性设置为utUseImplicitTLS(这是GMail端口465需要的)。


当然可以,我忘记尝试那个了。谢谢你指出来! - Coder12345

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接