Hallo zusammen,
ich hätt' da gern mal ein ein Problem....
Also ich möchte eMails in einer Datenbank speichern und wieder laden können.
Zu diesem Zweck nutze ich die TIdMessage der
Indy-Libary.
Ich pack' also fleißig Inhalt in die Mail, speichere sie mittels TIdMessage.SavetoStream ab und lade sie entsprechend wieder per TIdMessage.LoadFrom Stream.
Funktioniert alles auch so weit ganz toll. Nur immer wenn ich ein Attachment mit dranhänge verschwindet der Nachrichtentext. er muß irgendwo bein Laden verloren gehen, da er (soweit ich das beurteilen kann) komplett in der Datenbank steht.
Und ich hab' keine Ahnung, an welcher Stelle die Daten verloren gehen.
Hier mal ein kleines Code-Schnipsel:
Zum Speichern:
Delphi-Quellcode:
eMail := TIdMessage.Create(Self);
eMail.Clear;
eMail.ContentType := '
text/html';
eMail.Body.Text := sl.Text
// Hier handelt es sich um HTML-Code;
eMail.From.Text := '
****';
eMail.Subject := Edit2.Text;
for i:=0
to Listbox1.Items.Count-1
do TIdAttachment.Create(eMail.MessageParts, ListBox1.Items[i]);
Stream := TMemoryStream.Create;
email.SaveToStream(Stream);
emailData.email.Insert;
// Speichern in der Datanbank
emailData.email.FieldByName('
EMAIL').Assign(Stream);
emailData.email.Post;
Stream.Free;
eMail.Free;
Und zum Laden:
Delphi-Quellcode:
Stream := TMemoryStream.Create;
mails.FieldByName('EMAIL').AssignTo(Stream);
Stream.Position := 0;
eMail := TIdMessage.Create(Self);
eMail.LoadFromStream(Stream);
self.MailForm.Caption:=eMail.Body.Text;
Stream.Free;
Wäre echt toll, wenn mir hier jemand aus der Patsche helfen könnte.
Liebe Grüße und danke
Thomas