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