首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Indy SMTP连接在不同PC上的处理方式不同

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

Stack Overflow用户
提问于 2012-11-21 01:45:42
回答 1查看 744关注 0票数 3

在德尔福体育俱乐部的会员计划中,我使用俱乐部的BTConnect帐户向成员发送大量电子邮件,该帐户已迁移到Office365。最近,BT增加了认证,我把SMTP参数从satNone改成了satDefault和utUseExplicitTLS。如果我从家里运行这个程序,它会像预期的那样工作:

代码语言:javascript
复制
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>  

然后就走了,没问题。如果我把程序带到体育俱乐部并在那里运行,我会得到这样的结果:

代码语言:javascript
复制
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.

看起来Indy发出的是QUIT而不是第二个EHLO命令,但是我不知道为什么。我更改了设置以使用satSASL和相关机制,结果相同。它在家里很好用,但在俱乐部就不行了。有什么办法可以解决这个问题吗?大约一周前,我也将Indy更新到了最新版本。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-21 07:38:35

当服务器接收到STARTTLS命令并返回成功响应时,它期望TIdSMTP在发送任何其他命令之前启动SSL/TLS握手。在这种情况下,SSL/TLS握手肯定会失败,并且应该会引发异常。如果发生异常,TIdSMTPBase.StartTLS()将调用Disconnect()。这是TIdSMTP在成功执行QUIT命令后发送STARTTLS命令的唯一方式,而不是发送第二个EHLO

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13478990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档