smtp.live.comとTIdSmtpのSSLサポート(Indy、Delphi)

私は電子メールを送信するためにsmtp.live.comに接続しようとしています(live.comは2009年以来free 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に関連するものかもしれません。誰も私にこの謎を助けられますか?私は何かを設定するのを忘れましたか?

8

1 答え

Gmailと同様、Live.comのポート587では、SSL/TLSハンドシェイクを開始する前に、暗号化されていない接続をクライアントに要求し、 STARTTLS コマンドを送信する必要があります。 Indy 10では、接続する前に TIdSMTP.UseTLS プロパティを utUseExplicitTLS に設定します。代わりに UseTLS プロパティが utUseImplicitTLS に設定されているようです(これはGMailポート465に必要なものです)。

4
追加された
もちろん、それは私もそれを試して忘れて働いた。それを指摘してくれてありがとう!
追加された 著者 Coder12345,