Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy Message.LoadFromStream funktioniert nicht (https://www.delphipraxis.net/56492-indy-message-loadfromstream-funktioniert-nicht.html)

adrian4321 6. Nov 2005 18:45


Indy Message.LoadFromStream funktioniert nicht
 
Hi!

Flogendes Beispiel:

Delphi-Quellcode:
var msgStream : TMemoryStream;
begin
msgStream:= TMemoryStream.Create;
(table.Fields[0] as TBlobField).SaveToStream(msgStream);
IdMessage.LoadFromStream(msgStream, False);
ShowMessage(IdMessage.Subject);
end;
Bei diesem Befehl erhalte ich mit ShowMessage eine leere Message, d.h. die gesamte Indy-Message ist leer.

Delphi-Quellcode:
var msgStream : TMemoryStream;
begin
msgStream:= TMemoryStream.Create;
(table.Fields[0] as TBlobField).SaveToStream(msgStream);
msgStream.SaveToFile('c:\test.msg');
IdMessage.LoadFromFile('c:\test.msg');
ShowMessage(IdMessage.Subject);
end;
Hier erhalte ich mit ShowMessage korrekt den Betreff der eMail. Zugleich ist bewiesen dass der Stream nicht leer ist, meine Folgerung ist also dass IdMessage.LoadFromStream nicht funktioniert hat. Aber warum nicht??
Ich benutze Delphi 2005 Prof. und Indy 10.

Phistev 6. Nov 2005 19:39

Re: Indy Message.LoadFromStream funktioniert nicht
 
evtl. msgStream.Position:= 0

adrian4321 6. Nov 2005 19:46

Re: Indy Message.LoadFromStream funktioniert nicht
 
dankeschoen, daran lags :)

emsländer 6. Nov 2005 19:47

Re: Indy Message.LoadFromStream funktioniert nicht
 
Hier mal ein Beispiel (bei mir kommts aus einer Datei (Typ html)

Delphi-Quellcode:

  fs := Tfilestream.Create(dateiname,fmOpenRead or fmShareDenyWrite); // in Dateiname nat. Path-und Dateiname
  try
    fs.Position := 0;   // File in den String-Stream schreiben
    sStream := TStringStream.Create('');
    sStream.CopyFrom(fs,fs.size);   // Daten in einem String speichern
    stmp := sStream.DataString;
  finally
    freeandnil(fs);
    freeandnil(sstream);
  end;
dann:

Delphi-Quellcode:
  with TIdText.Create(Email.MessageParts, nil) do begin
    body.text := mailblatt.text; // Mailblatt ist eine RichText Komponente - mit .text wird rein ASCII übernommen
    ContentType := 'text/plain';
    ParentPart := 1;
  end;
  with TIdText.Create(Email.MessageParts, nil) do begin
    body.Text := stmp; // Hier wird der HTML-Teil übernommen
    ContentType := 'text/html';
     ParentPart := 1;
  end;
Les bitte dazu auch mal folgenden Thread: http://www.delphipraxis.net/internal...ct.php?t=67442

Gruss

EL


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz