Difference between revisions of "TSmtpCli.OnRequestDone"

From Overbyte
Jump to navigation Jump to search
 
Line 13: Line 13:
 
== Examples ==
 
== Examples ==
  
 +
This is a sample of how to handle a common set of responses. LogMsg method is just a call to a procedure that output information visually in a memo.
  
 +
  if (error > 0) then
 +
  begin
 +
    logMsg('Service Error occured RqType:'+inttostr(integer(RqType))+' Error:'+vartostr(error));
 +
    Exit;
 +
  end;
 +
 
 +
  if RqType = smtpConnect then
 +
  begin
 +
    logMsg('Sending HELO');
 +
    Smtp.Helo
 +
  end
 +
  else
 +
  if RqType = smtpOpen then
 +
  begin
 +
    //open is easiest to use when you have the need for authentication
 +
    logMsg('smtOpen, sending MailFrom');
 +
    Smtp.MailFrom;
 +
  end
 +
  else
 +
  if RqType = smtpHelo then
 +
  begin
 +
    logMsg('Sending from');
 +
    Smtp.MailFrom;
 +
  end
 +
  else
 +
  if RqType = smtpMailFrom then
 +
  begin
 +
    logMsg('Sending to');
 +
    Smtp.RcptTo;
 +
  end
 +
  else
 +
  if RqType = smtpRcptTo then
 +
  begin
 +
    logMsg('Sending data');
 +
    Smtp.Data;
 +
  end
 +
  else
 +
  if RqType = smtpData then
 +
  begin
 +
    //here you need to generate the e-mail, and trigger more...
 +
    if SendEmailQryEMAILID.AsString <> '' then
 +
    begin
 +
      logMsg('Sending next email');
 +
      generateSingleEmail; //a procedure i use to create my e-mail
 +
      Smtp.MailFrom;
 +
    end
 +
    else
 +
    begin
 +
      logMsg('No more email to send, quitting.');
 +
      Smtp.Quit
 +
    end;
 +
  end
 +
  else
 +
  if RqType = smtpQuit then
 +
  begin
 +
    logMsg('SMTP connection closed');
 +
  end;
  
 
== Best practices ==
 
== Best practices ==
 
''nothing yet''
 
''nothing yet''

Revision as of 13:54, 23 September 2007

Main page -> ICS components reference -> TSmtpCli -> OnRequestDone

Definition

procedure (Sender: TObject; RqType: TSmtpRequest; ErrCode: Word) of object;

  • Sender : the client which fired the event
  • RqType : type of the request.
  • ErrCode : error code for the request. If it is 0, there was no error.

Description

This event will fire when the server has sent a response for your request and all data transfers has been done.

Examples

This is a sample of how to handle a common set of responses. LogMsg method is just a call to a procedure that output information visually in a memo.

 if (error > 0) then
 begin
   logMsg('Service Error occured RqType:'+inttostr(integer(RqType))+' Error:'+vartostr(error));
   Exit;
 end;
 
 if RqType = smtpConnect then
 begin
   logMsg('Sending HELO');
   Smtp.Helo
 end
 else
 if RqType = smtpOpen then
 begin
   //open is easiest to use when you have the need for authentication
   logMsg('smtOpen, sending MailFrom');
   Smtp.MailFrom;
 end
 else
 if RqType = smtpHelo then
 begin
   logMsg('Sending from');
   Smtp.MailFrom;
 end
 else
 if RqType = smtpMailFrom then
 begin
   logMsg('Sending to');
   Smtp.RcptTo;
 end
 else
 if RqType = smtpRcptTo then
 begin
   logMsg('Sending data');
   Smtp.Data;
 end
 else
 if RqType = smtpData then
 begin
   //here you need to generate the e-mail, and trigger more...
   if SendEmailQryEMAILID.AsString <>  then
   begin
     logMsg('Sending next email');
     generateSingleEmail; //a procedure i use to create my e-mail
     Smtp.MailFrom;
   end
   else
   begin
     logMsg('No more email to send, quitting.');
     Smtp.Quit
   end;
 end
 else
 if RqType = smtpQuit then
 begin
   logMsg('SMTP connection closed');
 end;

Best practices

nothing yet