Delphi Indy SMTP连接在不同的PC上处理方式不同

Delphi Indy SMTP连接在不同的PC上处理方式不同,delphi,smtp,delphi-7,indy10,Delphi,Smtp,Delphi 7,Indy10,在德尔福体育俱乐部会员计划中,我使用俱乐部的BTConnect帐户向会员发送大量电子邮件,该帐户已迁移到Office365。最近,BT增加了身份验证,我将SMTP参数从satNone更改为satDefault和UTUSEXPLICITTLS。如果我在家里运行该程序,它将按预期工作: Stat Connected. Recv 20/11/2012 16:36:02: 220 pod51016.outlook.com Microsoft ESMTP MAIL Service ready at Tue

在德尔福体育俱乐部会员计划中,我使用俱乐部的BTConnect帐户向会员发送大量电子邮件,该帐户已迁移到Office365。最近,BT增加了身份验证,我将SMTP参数从satNone更改为satDefault和UTUSEXPLICITTLS。如果我在家里运行该程序,它将按预期工作:

Stat Connected.
Recv 20/11/2012 16:36:02: 220 pod51016.outlook.com Microsoft ESMTP MAIL Service ready at Tue, 20 Nov 2012 16:36:01 +0000<EOL>
Sent 20/11/2012 16:36:02: EHLO macxp<EOL>
Recv 20/11/2012 16:36:02: 250-pod51016.outlook.com Hello [81.155.5.61]<EOL>250-SIZE 36700160<EOL>250-PIPELINING<EOL>250-DSN<EOL>250-ENHANCEDSTATUSCODES<EOL>250-STARTTLS<EOL>250-AUTH<EOL>250-8BITMIME<EOL>250-BINARYMIME<EOL>250 CHUNKING<EOL>
Sent 20/11/2012 16:36:02: STARTTLS<EOL>
Recv 20/11/2012 16:36:02: 220 2.0.0 SMTP server ready<EOL>
Sent 20/11/2012 16:36:02: EHLO macxp<EOL>
Recv 20/11/2012 16:36:02: 250-pod51016.outlook.com Hello [81.155.5.61]<EOL>250-SIZE 36700160<EOL>250-PIPELINING<EOL>250-DSN<EOL>250-ENHANCEDSTATUSCODES<EOL>250-AUTH LOGIN<EOL>250-8BITMIME<EOL>250-BINARYMIME<EOL>250 CHUNKING<EOL>
Sent 20/11/2012 16:36:02: AUTH LOGIN<EOL>
Recv 20/11/2012 16:36:02: 334 deleted<EOL>
Sent 20/11/2012 16:36:02: deleted<EOL>
Recv 20/11/2012 16:36:02: 334 deleted<EOL>
Sent 20/11/2012 16:36:02: deleted<EOL>
Recv 20/11/2012 16:36:04: 235 2.7.0 Authentication successful<EOL>
Sent 20/11/2012 16:36:04: RSET<EOL>
Recv 20/11/2012 16:36:10: 250 2.0.0 Resetting<EOL>
Sent 20/11/2012 16:36:10: MAIL FROM: <deleted@btconnect.com><EOL>
Recv 20/11/2012 16:36:10: 250 2.1.0 Sender OK<EOL>  
Stat已连接。
Recv 20/11/2012 16:36:02:220 pod51016.outlook.com Microsoft ESMTP邮件服务于2012年11月20日星期二16:36:01+0000准备就绪
发送日期:2012年11月20日16:36:02:EHLO macxp
Recv 20/11/2012 16:36:02:250-pod51016.outlook.com你好[81.155.5.61]250-SIZE 36700160250-pipeling250-DSN250-ENHANCEDSTATUSCODES250-STARTTLS250-AUTH250-8BITMIME250-BINARYMIME250分块
发送日期:2012年11月20日16:36:02:STARTTLS
Recv 20/11/2012 16:36:02:220 2.0.0 SMTP服务器就绪
发送日期:2012年11月20日16:36:02:EHLO macxp
Recv 20/11/2012 16:36:02:250-pod51016.outlook.com您好[81.155.5.61]250-SIZE 36700160250-pipeling250-DSN250-ENHANCEDSTATUSCODES250-AUTH LOGIN250-8bitmi250-binarymi250分块
发送日期:2012年11月20日16:36:02:身份验证登录
Recv 20/11/2012 16:36:02:334删除
发送日期:2012年11月20日16:36:02:已删除
Recv 20/11/2012 16:36:02:334删除
发送日期:2012年11月20日16:36:02:已删除
Recv 20/11/2012 16:36:04:235 2.7.0身份验证成功
发送日期:2012年11月20日16:36:04:RSET
Recv 20/11/2012 16:36:10:250 2.0.0重置
发送时间:2012年11月20日16:36:10:邮件发件人:
Recv 20/11/2012 16:36:10:250 2.1.0发送方正常
就这样,没问题。 如果我把程序带到体育俱乐部并在那里运行,我会得到:

Stat Connected.
Recv 12/11/2012 15:17:31: 220 pod51014.outlook.com Microsoft ESMTP MAIL Service ready at Mon, 12 Nov 2012 15:17:03 +0000<EOL>
Sent 12/11/2012 15:17:31: EHLO ovscbob<EOL>
Recv 12/11/2012 15:17:31: 250-pod51014.outlook.com Hello [81.149.229.105]<EOL>250-SIZE 36700160<EOL>250-PIPELINING<EOL>250-DSN<EOL>250-ENHANCEDSTATUSCODES<EOL>250-STARTTLS<EOL>250-AUTH<EOL>250-8BITMIME<EOL>250-BINARYMIME<EOL>250 CHUNKING<EOL>
Sent 12/11/2012 15:17:31: STARTTLS<EOL>
Recv 12/11/2012 15:17:31: 220 2.0.0 SMTP server ready<EOL>
Sent 12/11/2012 15:17:31: QUIT<EOL>
Stat Disconnected.
Stat已连接。
Recv 12/11/2012 15:17:31:220 pod51014.outlook.com Microsoft ESMTP邮件服务于2012年11月12日星期一15:17:03+0000准备就绪
发送日期:2012年11月12日15:17:31:EHLO ovscbob
Recv 12/11/2012 15:17:31:250-pod51014.outlook.com你好[81.149.229.105]250-SIZE 36700160250-pipeling250-DSN250-ENHANCEDSTATUSCODES250-STARTTLS250-AUTH250-8BITMIME250-BINARYMIME250分块
发送日期:2012年11月12日15:17:31:STARTTLS
Recv 12/11/2012 15:17:31:220 2.0.0 SMTP服务器就绪
发送2012年11月12日15:17:31:退出
Stat断开。
看起来Indy发出的是QUIT而不是第二个EHLO命令,但我不知道为什么。我将设置更改为使用satSASL和相关机制,得到了相同的结果。在家里很好用,但在俱乐部里不行。我有办法解决这个问题吗?大约一周前,我也更新了Indy的最新版本


谢谢

当服务器接收到
STARTTLS
命令并返回成功响应时,它希望
tidstp
在发送任何进一步命令之前启动SSL/TLS握手。在这种情况下,SSL/TLS握手必须失败,并且应该引发异常<如果发生异常,code>TIdSMTPBase.StartTLS()调用
Disconnect()
。这是
tidmtp
在成功执行
STARTTLS
命令后发送
QUIT
命令的唯一方法,而不是发送第二个
EHLO

谢谢你,雷米。我想,当我切换到最新的Indy 10下载时,我没有更新俱乐部机器上的SSL包。