Hallo!
Ich habe mal eine Frage an die Profis die sich mit den
Indy TIdMessage Objekten gut auskenne. Ich habe einen eigenen eMail Server mit den Indys geschrieben und kann auch prima eMails damit speichern. Im Kern passiert das speichern der empfangenden Nachricht im Ereigniss MsgReceive vom TIdSMTPServer.
Hier speichere ich mir den Stream AMsg auf Platte...
Delphi-Quellcode:
procedure TfrmMain.smtpMsgReceive(ASender: TIdSMTPServerContext;
AMsg: TStream;
var LAction: TIdDataReply);
...
Amsg.Position:=0;
Amsg.SaveToFile('new_msg.bin');
...
Soweit, so gut, nur ich schaffe es nicht den Inhalt auch wirklich wieder auszusenden.
habe es so versucht... klappt leider nicht, TIdMessage ändert den Inhalt irgendwie ab und dann kommt die Mail zwar an, Adressen und Subject ist zu sehen, der eigentliche Inhalt aber nicht
Delphi-Quellcode:
...
msW.LaodFromFile(new_msg.bin');
msgSmtp.LoadFromStream(msW);
smtpc.Connect;
smtpc.Send(msgSmtp);
...
Im Log sieht man das es ein "multi-part message in MIME format" file ist und auch der Server im Internet bestätigt den Empfang ordnungsgemäß doch leider ist es wenn man die eMail dann empfängt so das der Inhalt nicht zu sehen ist.
Hat irgend jemand eine Idee wie man das nun richtig macht?
Wie kann man eine eMail die von
Indy selbst als Stream Empfangen wurde wieder in einem Stream laden und den via
SMTP aussenden so das die eMail praktisch unverändert weitergeleitet wird?
Indy arbeitet ja mit TStreams, ist TMemoryStream und TFielStream kompatibel???
Danke für jede Hilfe!!!
Grüße Frank