- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 TidSMTP 和 TIdSSLIOHandlerSocketOpenSSL 时遇到问题,仅通过连接到服务器就会出现“套接字错误”。
这是表单组件代码
object IdSMTP: TIdSMTP
IOHandler = IdSSLIOHandlerSSL
Port = 465
SASLMechanisms = <>
UseTLS = utUseImplicitTLS
Left = 93
Top = 49
end
object IdSSLIOHandlerSSL: TIdSSLIOHandlerSocketOpenSSL
OnStatus = IdSSLIOHandlerSSLStatus
Destination = ':465'
MaxLineAction = maException
Port = 465
DefaultPort = 0
SSLOptions.Mode = sslmUnassigned
SSLOptions.VerifyMode = []
SSLOptions.VerifyDepth = 0
OnStatusInfo = IdSSLIOHandlerSSLStatusInfo
Left = 88
Top = 112
end
和德尔福代码
IdSMTP.Username := 'username';
IdSMTP.Password := 'password';
IdSMTP.Host := 'domain';
IdSMTP.Port := 465;
IdSMTP.UseTLS := utUseImplicitTLS;
try
IdSMTP.Connect;
except
on E:Exception do
// Socket Error, Connection Timeout is thrown.
Memo1.Lines.Add(E.Message);
end;
我记录了 SSL IO 状态并得到了以下信息:
Resolving hostname {domain}.
Connecting to {ip}.
SSL status: "before/connect initialization"
SSL status: "before/connect initialization"
SSL status: "SSLv3 write client hello A"
SSL status: "SSLv3 read server hello A"
Socket Error # 10060
Connection timed out.
顺便说一句,我们的邮件服务器正在使用自签名证书。
我做错了什么?
TIA
更新:2014 年 2 月 7 日
尝试过Sending mail to Gmail using Indy提示,但我在SSLv3 read server hello A之后也连接正常关闭发送电子邮件。
Resolving hostname smtp.gmail.com.
Connecting to 74.125.25.108.
Connected.
Sending Email..
SSL status: "before/connect initialization"
SSL status: "before/connect initialization"
SSL status: "SSLv3 write client hello A"
SSL status: "SSLv3 read server hello A"
Disconnected.
Connection Closed Gracefully.
这是新代码:
IdSMTP.Username := 'username';
IdSMTP.Password := 'password';
IdSMTP.Host := 'smtp.gmail.com';
IdSMTP.UseTLS := utUseExplicitTLS;
IdSMTP.Port := 587;
try
// Can connect successfully
IdSMTP.Connect;
// This part throws the exception
IdSMTP.Send(IdMessage);
except
on E:Exception do
// Disconnected, connection closed gracefully
Memo1.Lines.Add(E.Message);
end;
更新:
尝试使用连接到同一域的 Thunderbird 发送电子邮件。
雷鸟:
印地:
我的程序中没有发生“客户端 key 交换,...”。
已解决
此问题已通过手动设置连接超时解决
最佳答案
您正在使用隐式 SSL。这意味着一旦套接字连接到服务器,在交换任何应用程序数据(SMTP 命令/响应)之前,就会启动 SSL 握手。客户端 hello 被发送到服务器,然后在等待服务器发回 hello 作为响应时发生超时。这意味着服务器没有在您连接的端口上使用 SSL。
需要记住的一点 - 设置 UseTLS
属性可能会更改 Port
属性,因此请确保 Port
确实是您的属性期待 Connect()
被调用。为了确保这一点,请尝试在设置 UseTLS
之后而不是之前设置 Port
。
关于delphi - 使用 TIdSSLIOHandlerSocketOpenSSL 时 idSMTP 连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24506152/
我使用 TIdMessage 和 TIdSMTP 发送纯文本电子邮件。 对于正文,我使用一个简单的连接字符串,例如 Body := SomeText + #13#10 + Some
我在 C++Builder 6.0 专业版上使用 Indy 10。 我的 SMTP 服务器在特定时间间隔内对连接数施加了限制,因此我需要使用同一连接发送多封电子邮件。是否可以?我该怎么做? 我已经能够
我在使用 TidSMTP 和 TIdSSLIOHandlerSocketOpenSSL 时遇到问题,仅通过连接到服务器就会出现“套接字错误”。 这是表单组件代码 object IdSMTP: TI
当我将 ConnectTimeout 设置为 IdSMTP(例如,30 秒)并且 SMTP 服务器不可用时,它从 SMTP 服务器起飞大约 105 秒。 这是版本 10 中的 Indy 组件 - *2
如何使用带有 html 内容的 Delphi IdSMTP 组件发送电子邮件? 最佳答案 最近不得不使用 Indy IdSmtp 组件,很遗憾这个问题没有好的答案。我重写了我们的辅助函数以使用 Ind
我正在尝试使用 gmail 帐户(Delphi 7、Indy 10)通过以下设置发送电子邮件: TIdSmtp: Port = 587; UseTLS := utUseExplicitTLS; TId
自 2019 年 11 月 20 日起,当我的软件的所有用户向 smtp.live.com 发送电子邮件时会引发异常。 *ERROR: SSL is not available on this ser
这是我的配置: IdSMTP1.Host := 'smtp.gmail.com'; IdSMTP1.Port := 587; IdSMTP1.UseTLS := utUseExplicitTLS; I
我是一名优秀的程序员,十分优秀!