Thema: Delphi Problem mit eMali

Einzelnen Beitrag anzeigen

diago

Registriert seit: 5. Jan 2005
11 Beiträge
 
#1

Problem mit eMali

  Alt 14. Dez 2005, 01:40
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
  Mit Zitat antworten Zitat