Indy 10 - 从GMail帐户发送邮件时,IdSMTP.Send()挂起 [英] Indy 10 - IdSMTP.Send() hangs when sending messages from GMail account
本文介绍了Indy 10 - 从GMail帐户发送邮件时,IdSMTP.Send()挂起的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用gmail帐户(Delphi 7,Indy 10)发送一封电子邮件,其中包含以下设置:
TIdSmtp:
Port = 587;
UseTLS:= utUseExplicitTLS;
TIdSSLIOHandlerSocketOpenSSL:
code> SSLOptions.Method:= sslvTLSv1;
一切似乎都设置好了。我得到这个回应:
解析主机名smtp.gmail.com。
连接到74.125.77.109。
SSL状态:之前/连接初始化
SSL状态:之前/连接初始化
SSL状态:SSLv3写客户端hello A
SSL状态:SSLv3读取服务器hello A
SSL状态:SSLv3读服务器证书
SSL状态:SSLv3读服务器完成
SSL状态:SSLv3写客户端密钥交换A
SSL状态:SSLv3写入更改密码规范A
SSL状态:SSLv3写入完成A
SSL状态:SSLv3刷新数据
SSL状态:SSLv3读取完成A
SSL状态:SSL协商成功完成
SSL状态:SSL协商成功完成
密码:name = RC4-MD5; description = RC4-MD5 SSLv3 Kx = RSA Au = RSA Enc = RC4(128)Mac = MD5
;位= 128; version = TLSv1 / SSLv3;
然后它挂起并没有完成。电子邮件不发送。可能是什么问题?
解决方案
问题很简单。我没有足够的耐心,应用程序没有挂起,有很长的超时时间。超时是设置错误的结果。
I am trying to send an e-mail using gmail account (Delphi 7, Indy 10) with these settings:
TIdSmtp:
Port = 587;
UseTLS := utUseExplicitTLS;
TIdSSLIOHandlerSocketOpenSSL:
SSLOptions.Method := sslvTLSv1;
Everything seems to be set ok. I get this response:
Resolving hostname smtp.gmail.com.
Connecting to 74.125.77.109.
SSL status: "before/connect initialization"
SSL status: "before/connect initialization"
SSL status: "SSLv3 write client hello A"
SSL status: "SSLv3 read server hello A"
SSL status: "SSLv3 read server certificate A"
SSL status: "SSLv3 read server done A"
SSL status: "SSLv3 write client key exchange A"
SSL status: "SSLv3 write change cipher spec A"
SSL status: "SSLv3 write finished A"
SSL status: "SSLv3 flush data"
SSL status: "SSLv3 read finished A"
SSL status: "SSL negotiation finished successfully"
SSL status: "SSL negotiation finished successfully"
Cipher: name = RC4-MD5; description = RC4-MD5 SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5
; bits = 128; version = TLSv1/SSLv3;
And then it hangs and doesn't finish. E-mail is not sent. What can be the problem?
解决方案
The problem was simple. I was not patient enough and application didn't hang, there was long timeout. The timeout was result of wrong settings.
这篇关于Indy 10 - 从GMail帐户发送邮件时,IdSMTP.Send()挂起的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文