English 中文(简体)
如果使用TIdSmtp.Connect()方法出现错误11004,则获得远期错误信息?
原标题:Get extended error information when an error 11004 occurs using TIdSmtp.Connect() method?

我有一份Delphi 6号申请,用附件发送电子邮件。 在我第一次测试时,我发现1 004个错误(政策违约),当时我称之为TIdSmtp.Connect()。 它排除了我的电子邮件服务器员工和管理当局协调会的设置是错误的,现在它进行罚款。 但是,我知道我的用户会陷入麻烦,我很想知道,是否有办法从员工和管理当局协调会服务器通过因果部件获得更为广泛的错误信息,以帮助我开展清醒工作。 我正在使用Indy 9和Delphi6。

是否有办法使报告内容更加丰富,并找出错误的可能原因是什么? (例如,SSL要求,从未填满的外地到被拒的地区等)。 而且,同样的问题,但何时发生TIdSmtp.Send()方法上的错误?

最佳回答

EIdSMTPReplyError>是针对员工和管理当局协调会服务器在员工和管理当局协调会礼宾层发出的错误信息提出的。 <代码>11004是一小笔/DNS错误,不是员工和管理当局协调会的错误。 除了基本的本组织错误信息之外,没有其他错误信息(可从<代码>获取)。 SysErrorMessage():

所要求的名称是有效的,在数据库中找到,但并没有解决正确的相关数据。

关于<代码>TIdSMTP.Send(),请参看<编码>EIdSMTPReplyError的例外情况,例如:

try
  IdSMTP1.Connect;
  try
    IdSMTP1.Send(IdMessage1);
  finally
    IdSMTP1.Disconnect;
  end;
except
  on E: EIdSMTPReplyError do
    Application.MessageBox(
      PChar(
         Error message:   + E.Message + sLineBreak +
         Error code:   + IntToStr(E.ErrorCode) + sLineBreak +
         Error reply:   + E.EnhancedCode.ReplyAsStr
      ),
       SMTP Error... , MB_OK + MB_ICONSTOP + MB_TOPMOST);
end;

这将有助于某些人,如果服务器支持的话 延伸的《傲慢法》可能更接近。 但是,更不时,如果看不到实际的员工和管理当局协调署指挥/对电线的交通,那么你不可能把错误的东西分开。

Regarding SSL/TLS errors in particular, one of several different things may happen, depending on your TIdSMTP configuration:

(1) 您可获得一个一般性的<代码>EIdSocketError例外情况,如<代码>11004/code>错误。

(2) 如果你与需要普通SSL/TLS但你没有密码的服务器港连接,则你可以取得<代码>的例外情况,但正式错误代码除外。 TIdSMTP.UseTLS set to utUseImplicitTLS

(2) 如果你有<条码>,你可以取得<<<0>或>其他开放式特别安全法>。 分配使用TLS=utUseImplicitTLS,但服务器并不期望SSL/TLS。

3) 您的<代码>UseTLS被设定为utUseExplicitTLS.utRequiresTLS和服务器支持Explicit TLS,但SSL/TLS的手法无论出于何种原因都未能取得<>TIdSMTP.OnTLSHandShakeFailed。 仅用于<代码>utUseExplicitTLS的活动。 如果活动主管没有制定<代码>VContinue=True,或你使用utRequiresTLS,你将获得一份>EIdTLSClientTLSHandShakeFailed的例外情况。

4) 您有<代码>UseTLS, 要么是utUseExplicitTLS,要么是?utRequiresTLS, 服务器不支持Explicit TLS, 您将获得TIdSMTP.OnTLAvailable, 仅用于utUseExplicitTLS。 如果活动主管没有制定<代码>VContinue=True,或您使用utRequiresTLS,则您将获得一份EIdTLSClientTLSNotAvailable的例外情况。

问题回答

暂无回答




相关问题
determining the character set to use

my delphi 2009 app has a basic translation system that uses GNUGetText. i had used some win API calls to prepare the fonts. i thought it was working correctly until recently when someone from Malta ...

Help with strange Delphi 5 IDE problems

Ok, I m going nuts here. For the last (almost) four years, I ve been putting up with some extremely bad behavior from my Delphi 5 IDE. Problems include: Seemingly random errors in coride50.bpl ...

How to write a Remote DataModule to run on a linux server?

i would like to know if there are any solution to do this. Does anyone? The big picture: I want to access data over the web, using my delphi thin clients. But i´would like to keep my server/service ...

How convert string to integer in Oxygene

In Delphi, there is a function StrToInt() that converts a string to an integer value; there is also IntToStr(), which does the reverse. These functions doesn t appear to be part of Oxygene, and I can ...

Quick padding of a string in Delphi

I was trying to speed up a certain routine in an application, and my profiler, AQTime, identified one method in particular as a bottleneck. The method has been with us for years, and is part of a "...