Einzelnen Beitrag anzeigen

Schucki

Registriert seit: 17. Jul 2004
158 Beiträge
 
Delphi 2010 Architect
 
#1

Indy10 / TIdMessage speichern und weiterleiten?

  Alt 21. Jul 2013, 02:30
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
Frank
  Mit Zitat antworten Zitat