2012-02-06 40 views
8

Tôi đang cố gắng kết nối với smtp.live.com để gửi email (live.com hỗ trợ pop3/smtp miễn phí từ năm 2009 nhưng đây là tin tức hoàn toàn cho tôi).Hỗ trợ SSL cho smtp.live.com và TIdSmtp (Indy, Delphi)

Đây là những gì sẽ xảy ra khi tôi cố gắng để kết nối với cổng 587 smtp.live.com:

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 

tôi sử dụng cùng mã với sslvSSLv23 và sslvTLSv1 và nó hoạt động bình thường với gmail smtp (smtp.gmail. com, cổng 465) máy chủ. Ngoài ra, Outlook sẽ gửi thư thông thường khi SSL được chọn và trên cổng 587 để nó có thể liên quan đến OpenSSL. Bất cứ ai có thể giúp tôi với bí ẩn này? Tôi đã bỏ lỡ để thiết lập một cái gì đó?

Trả lời

4

Giống như GMail, cổng 587 của Live.com yêu cầu khách hàng kết nối không được mã hóa và gửi lệnh STARTTLS trước khi bắt đầu bắt tay SSL/TLS. Trong Indy 10, bạn làm điều đó bằng cách đặt thuộc tính TIdSMTP.UseTLS thành utUseExplicitTLS trước khi kết nối. Có vẻ như bạn có thuộc tính UseTLS được đặt thành utUseImplicitTLS thay thế (đó là những gì cần thiết cho cổng Gmail 465).

+0

Tất nhiên điều đó đã làm việc tôi cũng quên thử điều đó. Cảm ơn bạn đã chỉ ra điều đó! – Coder12345

Các vấn đề liên quan