Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Fehlermeldungen von Indy bei E-Mailversand abfangen (https://www.delphipraxis.net/39402-fehlermeldungen-von-indy-bei-e-mailversand-abfangen.html)

Ironarrow 2. Feb 2005 09:45


Fehlermeldungen von Indy bei E-Mailversand abfangen
 
Hallo zusammen !

Ich habe ein kleines Überwachungsprogramm geschireben. Wenn dieses nun merkt, dass
etwas nicht stimmt soll eine E-Mail abgesetzt werden und die Überwachung soll weiter
laufen.

Das läuft auch alles, sofern keine Fehlermeldung vom SMTP-Server kommt. Sobald
dieser aber nun einen Fehler meldet erscheint ein MessageDLG, wo der Fehlertext
drin steht.

Packe ich den Versand in einen try ... except ... end - Block hinein, so verschwindet
zwar die Meldung, jedoch habe ich keine Möglichkeit gefunden die Meldung, die der
SMTP-Server ausgibt abzufangen und in eine LOG-Datei zu schreiben.

Mein Quellcode schaut so aus:

Delphi-Quellcode:
procedure Tfrm_Config.SendeMail;
  begin
    IdMessage1.Body.Add(sMeldungsText);
    IdMessage1.From.Text := sAbsender;
    IdMessage1.ReplyTo.EMailAddresses := sAbsender;

[... Aufbereiten der Nachricht ...]

    try
      IdSMTP1.Connect;
      IdSMTP1.Send(IdMessage1);
    except
      Protokolliere ('Fehler beim Versenden der E-Mail an: ' +   sTmp);   { Mailversand in die Protokolldatei eintragen }
    end;
    IdSMTP1.Disconnect;
  end;
Wenn ein Fehler auftritt kann ich zwar einen Eintrag in die LOG-Datei machen, dass ein Fehlerauftrat, jedoch würde ich
noch gerne die Meldung vom Server mit anhängen (wie z.B.: User unknown).

Muß ich dieses innerhalb eines Ereignisses von TIdSMTPClient machen oder geht es auch in einer "normalen" Funktion / Prozedur ?
Und wie müßten dann dazu die Befehle aussehen, die ich dann (ich schätze mal) in den except-Bereich reinschreiben muss ??

Gruß,

Rainer

shmia 2. Feb 2005 09:56

Re: Fehlermeldungen von Indy bei E-Mailversand abfangen
 
Delphi-Quellcode:
   try
      IdSMTP1.Connect;
      IdSMTP1.Send(IdMessage1);
    except
      on E:Exception do
      begin
         // Fehler protokollieren
         Protokolliere ('Fehler beim Versenden der E-Mail an: ' + sTmp+#13#10+
            E.Message);  
      end;
    end;
    IdSMTP1.Disconnect;

Ironarrow 2. Feb 2005 10:00

Re: Fehlermeldungen von Indy bei E-Mailversand abfangen
 
Hey Super !!!!!

Danke für die schnelle Antwort !!!!

Gruß,

Rainer


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz