Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
smtp/pop3客户端如何读取smtp/pop3服务器发送给它们的[错误]消息(在delphi中)?_Delphi_Email_Indy - Fatal编程技术网

smtp/pop3客户端如何读取smtp/pop3服务器发送给它们的[错误]消息(在delphi中)?

smtp/pop3客户端如何读取smtp/pop3服务器发送给它们的[错误]消息(在delphi中)?,delphi,email,indy,Delphi,Email,Indy,我的服务器端smtp和pop3事件使用ASender:tid命令发送[错误]消息,如下所示: ASender.Reply.SetReply(OK, 'message to send'); 或 因此,我的问题是如何从smtp/pop3客户端读取此消息?听起来您需要了解异常是如何工作的 如果Connect()失败,将引发异常。可以使用几种不同的异常类型,包括包含套接字错误代码的EIdSocketError 如果POP3/SMTP命令失败,将引发EIdRFCReplyError异常。异常包含服务器的

我的服务器端smtp和pop3事件使用ASender:tid命令发送[错误]消息,如下所示:

ASender.Reply.SetReply(OK, 'message to send');


因此,我的问题是如何从smtp/pop3客户端读取此消息?

听起来您需要了解异常是如何工作的

如果
Connect()
失败,将引发异常。可以使用几种不同的异常类型,包括包含套接字错误代码的
EIdSocketError


如果POP3/SMTP命令失败,将引发
EIdRFCReplyError
异常。异常包含服务器的响应代码和消息。此信息也可在组件的
LastCmdResult.code
LastCmdResult.NumericCode
LastCmdResult.Text

属性中找到。POP3客户端是否有办法获取服务器未响应或工作不正常的消息,如:尝试POP3客户端连接;除了//如何读取错误消息????结束;谢谢,Remy Lebeau-LastCmdResult.FormattedReply.Text正是我需要的:)不要从
LastCmdResult.FormattedReply.Text
读取。改为读取
LastCmdResult.Text
FormattedReply
用于生成和解析回复,而不是处理回复。能否提供一些代码,说明SMTP服务器如何向SMTP客户端发送错误消息,以及客户端如何从事件SMTPServerMsgReceive(ASender:TIdSMTPServerContext;AMsg:TStream;var-LAction:TIdDataReply)获取错误消息;发送到事件:SMTPClient.Send(myTidMessage)@Roman_Bezjak:在
OnMsgReceive
事件中,向客户端发送错误消息的唯一方法是将
VAction
参数设置为
dOk
以外的值,或者引发异常,然后
TIdSMTPServer
将异常发送到客户端。无论哪种方式,在客户端,
tidstp.Sender()
都将引发一个
EIdRFCReplyError
异常,并带有相应的
code
Text
值。
ASender.Reply.SetReply(ERR, 'error message to send');