Hallo,
ich bin gerade dabei ein Projekt das einen
Indy-Basierten
SMTP-Server enhtält von einer Uralt-
Indy-Version (10.0 soweit ich das erkennen kann) auf aktuell 10.5.8 (rev. 4631) upzudaten.
Dabei haben sich auch die Schnittstellen zu den Eventhandlern geändert.
Ich muss beim Abweisen von Mail From unterschiedliche Meldungen bereitstellen (z.B. sind bestimmte Absender in bestimmten Zuständen des Systems bzw. zu bestimmten Zeiten nicht erlaubt).
In der alten Version hatte man im Eventhandler einen TIdCommand zur Verfügung und es war so gelöst:
Delphi-Quellcode:
if Condition(...)
then
begin
ASender.PerformReply := true;
ASender.CommandHandler.ReplyExceptionCode := 550;
raise Exception.Create(LocalizeMessage(REJECT_REASON_1));
end
else if OtherCondition(...)
then
begin
ASender.PerformReply := true;
ASender.CommandHandler.ReplyExceptionCode := 550;
raise Exception.Create(LocalizeMessage(REJECT_REASON_2));
end;
In der neuen Version habe ich einen TIdSMTPServerContext und var VAction : TIdMailFromReply zur Verfügung, habe aber nichts gefunden, wie ich über
VAction := mReject;
die Statusmeldung "550
Absender@myDomain.local Sender Not Permitted" beeinflussen kann und wenn ich den Text wie bisher als
Exception raise wird als Fehler 451 gesetzt, was ja einen temporären Fehler darstellt und bei meinem Exchange nicht zu einer Rückmeldung an die sendende Mailbox führt.
Gibt es da eine einfache Möglichkeit meine Wünsche auch in der neuen Version umzusetzen? Gibt es einen anderen Weg oder habe ich vielleicht nur etwas übersehen?
Danke
Chris