Einzelnen Beitrag anzeigen

Ironarrow

Registriert seit: 23. Mär 2004
Ort: Kerpen
16 Beiträge
 
Delphi 7 Professional
 
#1

Fehlermeldungen von Indy bei E-Mailversand abfangen

  Alt 2. Feb 2005, 10:45
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
  Mit Zitat antworten Zitat