任何人都可以诊断我使用 Delphi 2010 和 Indy 10.5.5 连接到 smtp.office365.com 的失败吗?
我已经阅读了 Indy 专家 Remy Lebeau 在这个问题中提供的代码示例:将 INDY 10 SMTP 与 Office365 结合使用.
我已经获取了两个备用代码示例中的每一个(一个使用 AuthTypesatDefault
和另一个satSASL
)从这个问题并将它们剪切并粘贴到控制台应用程序中。在每种情况下运行时都会出现以下错误:
EIdOSSLUnderlyingCryptoError: Error connecting with SSL.
Error connecting with SSL.
error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
当我将 UseTLS 更改为utUseExplicitTLS
(正如其他一些答案中所建议的,在尝试 TLS 之前需要纯文本连接)我收到以下错误:
EIdOSSLConnectError: Error connecting with SSL.
Error connecting with SSL.
EOF was observed that violates the protocol
我注意到其他答案中的一些引用设置 SSLOptions.SSLVersions 而不是 SSLOptions.Method (据说已弃用),但该属性似乎不存在于我的 Indy 版本的 TIdSSLIOHandlerSocketOpenSSL 上。
我相信我拥有随 D2010 更新一起提供的 Indy 版本,但它有些过时了。我愿意更新一个较新的版本(如果存在),但似乎无法找到这样做,除非安装 SVN、学习它、从开发中签出并重新编译。
最后,我尝试运行控制台应用程序的所有四个变体,并且可执行目录中不存在 DLL,并且存在来自 OpenSSL v1.0.2h 的 DLL,但没有任何明显效果。
编辑:另一条信息。客户端提供的 SMTP 凭据(该项目通过单个专用出站电子邮件地址发送电子邮件)的形式为[email protected]
, 而不是@office365
.