【问题标题】:SSL support for smtp.live.com and TIdSmtp (Indy, Delphi)SSL 支持 smtp.live.com 和 TIdSmtp (Indy, Delphi)
【发布时间】:2012-02-28 02:03:47
【问题描述】:

我正在尝试连接到 smtp.live.com 以发送电子邮件(live.com 自 2009 年以来显然支持免费 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 有关。谁能帮我解开这个谜?我错过了设置吗?

【问题讨论】:

    标签: delphi smtp openssl indy indy10


    【解决方案1】:

    与 GMail 一样,Live.com 的 587 端口要求客户端在启动 SSL/TLS 握手之前进行未加密的连接并发送STARTTLS 命令。在 Indy 10 中,您可以在连接之前将 TIdSMTP.UseTLS 属性设置为 utUseExplicitTLS。听起来您将 UseTLS 属性设置为 utUseImplicitTLS (这是 GMail 端口 465 所需要的)。

    【讨论】:

    • 当然有效,我也忘记尝试了。感谢您指出这一点!
    猜你喜欢
    • 1970-01-01
    • 2020-03-27
    • 2012-05-04
    • 1970-01-01
    • 2017-02-15
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    相关资源
    最近更新 更多