![]() |
INDY-Emails: Probleme mit Attachments
Hallo,
sorry, ich komm einfach nicht weiter: Wie kann ich die Attachments einer erhaltenen Email (Indy 9) als Blobfeld in einer Datenbank speichern? (IB 7) Das muss irgendwie über einen Stream gehen, ich checks aber irgendwie nicht. Ebenso das auslesen. Wäre toll, wenn mich da mal jemand von der Leitung schubsen könnte :gruebel: Danke! Simon |
Re: INDY-Emails: Probleme mit Attachments
Was genau ist Dein Problem, an das Attachment zu gelangen oder die Daten in der DB zu speichern?
...:cat:... |
Re: INDY-Emails: Probleme mit Attachments
Hi sakura,
also das speichern in der DB funzt.
Delphi-Quellcode:
Nun hab ich shcon mal weiterprobiert und lese die Datei so wieder aus der Datenbank:
vstream := TStringStream.Create('');
TIdAttachment(MessageParts[vi]).Encode(vStream); vStream.Position := 0; ParamByName('inhalt').AsString := vStream.DataString; execSQL;
Delphi-Quellcode:
Das funzt aber nicht - ich krieg ne 0 KB-Datei. Woran liegt das?
vFileStream := TFileStream.Create(vDir + 'TEMP\'+gvanlagenarray[lvAnhaenge.itemindex].Dateiname, fmCreate);
with fDM.IB_Cursor do begin if active then showmessage('ibcursor offen! (ActAttOeffnenExecute)'); close; sql.Text := 'select inhalt from email_blob where ID = '+inttostr(gvAnlagenarray[lvAnhaenge.ItemIndex].id); prepare; open; vStream := CreateBlobStream(FieldByName('inhalt'),bsmRead); vFileStream.Write(vStream,vStream.Size); end; Hoffe, Du kannst mir helfen :roll: Danke! Simon |
Re: INDY-Emails: Probleme mit Attachments
Zitat:
vFileStream.CopyFrom(vStream, 0); |
Re: INDY-Emails: Probleme mit Attachments
Hm, auch damit bleibt die Datei 0KB groß. Ich kann sie auch erst öffnen, wenn ich mein Programm volständig schließe, vorher heißt es, dass sie nicht geöffnet werden kann, weil noch darauf zugegriffen wird....
:gruebel: |
Re: INDY-Emails: Probleme mit Attachments
Zitat:
2 Möglichkeiten: * vFileStream schliesen
Delphi-Quellcode:
* den FileStream mit Share-Rechten öffnen
FreeAndNil(vFileStream);
Delphi-Quellcode:
vFileStream := TFileStream.Create(dateiname, fmOpenWrite or fmShareDenyWrite);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:31 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