2012-02-06 148 views
8

我想連接到smtp.live.com發送電子郵件(live.com支持自2009年以來免費pop3/smtp顯然,但這是完全消息我)。SSL支持smtp.live.com和TIdSmtp(Indy,Delphi)

下面是當我嘗試連接到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有關。任何人都可以幫助我解決這個謎團嗎?我錯過了什麼設置?

回答

4

和GMail一樣,Live.com的端口587要求客戶端未加密地連接併發送STARTTLS命令,然後啓動SSL/TLS握手。在Indy 10中,通過在連接前將TIdSMTP.UseTLS屬性設置爲utUseExplicitTLS來實現這一點。這聽起來像你有UseTLS屬性設置爲utUseImplicitTLS而不是(這是GMail端口465所需的)。

+0

當然,這工作我忘了也試試。感謝您指出了這一點! – Coder12345 2012-02-17 03:38:29