Поддержка SSL для smtp.live.com и TIdSmtp (Indy, Delphi)

Я пытаюсь подключиться к smtp.live.com для отправки электронных писем (по-видимому, live.com поддерживает бесплатный pop3/smtp с 2009 года, но для меня это совершенно новость).

Вот что происходит, когда я пытаюсь подключиться к порту 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

Я использую тот же код с sslvSSLv23 и sslvTLSv1, и он нормально работает с smtp-сервером gmail (smtp.gmail.com, порт 465). Кроме того, Outlook обычно отправляет почту при проверке SSL и на порту 587, поэтому это может быть связано с OpenSSL. Может ли кто-нибудь помочь мне с этой тайной? Я что-то пропустил?


person Coder12345    schedule 06.02.2012    source источник


Ответы (1)


Как и GMail, порт 587 Live.com требует, чтобы клиент подключался незашифрованным и отправлял команду STARTTLS, прежде чем инициировать рукопожатие SSL/TLS. В Indy 10 вы делаете это, устанавливая для свойства TIdSMTP.UseTLS значение utUseExplicitTLS перед подключением. Похоже, у вас вместо свойства UseTLS установлено значение utUseImplicitTLS (это то, что необходимо для порта GMail 465).

person Remy Lebeau    schedule 06.02.2012
comment
Конечно, это сработало, я тоже забыл попробовать. Спасибо что подметил это! - person Coder12345; 17.02.2012