Vizualizar Corpo De E-mail Com Imagens
Olá
Estou desenvolvendo um cliente de e-mail com indy, e já consigo ler as mensagens direito... O problema é que ainda não consigo vizualizar imagens que vêm junto no corpo da mensagem, como acontece com propagandas, por ex.
Baixá-las eu já consigo, só não consigo exibí-las mesmo. Estou usando o componente HTML Viewer para exibir as mensagens (http://pbear.com/htmlviewers.html).
O código que estou usando é o seguinte:
redtBody na verdade é o HTML Viewer.
O que eu deveria fazer para exibir as imagens junto da mensagem?
Estou desenvolvendo um cliente de e-mail com indy, e já consigo ler as mensagens direito... O problema é que ainda não consigo vizualizar imagens que vêm junto no corpo da mensagem, como acontece com propagandas, por ex.
Baixá-las eu já consigo, só não consigo exibí-las mesmo. Estou usando o componente HTML Viewer para exibir as mensagens (http://pbear.com/htmlviewers.html).
O código que estou usando é o seguinte:
procedure TPages.lvHeaderClick(Sender: TObject); var intIndex: Integer; li: TListItem; varnt: variant; begin //inherited; if lvHeader.Selected = nil then Exit; Busy(true); idMsg.Clear; redtBody.Clear; lvAtt.Clear; //dm.tbDledMail.Locate(´MessageID´, idx[idx2[lvHeader.Selected.Index]], []); varnt := VarArrayCreate([0,1], varVariant); varnt[1]:= lvHeader.ItemFocused.SubItems.Strings[4]; varnt[0]:= strtodatetime(lvHeader.ItemFocused.SubItems.Strings[2] + ´ ´ + lvHeader.ItemFocused.SubItems.Strings[3]); dm.tbDledMail.Locate(´date; size´, varnt, []); if not dm.tbDledMailcontent.IsNull then begin //redtbody.LoadStrings(dm.tbDledMailcontent.Value); memo1.Clear; memo1.Lines.Add(dm.tbDledMailcontent.Value); redtbody.LoadStrings(memo1.Lines); dm.tbAtts.Filter := ´codMsg = ´´´ + dm.tbDledMailcodMsg.AsString + ´´´´; dm.tbAtts.Filtered := true; dm.tbAtts.Active := true; if not dm.tbAtts.IsEmpty then begin dm.tbAtts.First; while not dm.tbAtts.Eof do begin li := lvAtt.Items.Add; li.ImageIndex := 8; li.Caption := ´´; li.SubItems.Add(dm.tbAttsnome.Value); li.SubItems.Add(dm.tbAttsTipo.Value); dm.tbAtts.Next; end; end; dm.tbAtts.Filtered := false; dm.tbAtts.Active := true; end else begin try begin Status(0, ´Recebendo mensagem...´); if not idpop3.Connected then PopConnect; idPOP3.Retrieve(dm.tbDledMailidx.Value, idMsg); //Setup attachments list idMsg.SaveToFile(´teste´); redtbody.LoadStrings(idMsg.Body); dm.tbDledMail.Edit; dm.tbDledMailcontent.Assign(idMsg.Body); dm.tbDledMail.Post; for intIndex := 0 to Pred(idMsg.MessageParts.Count) do if (idMsg.MessageParts.Items[intIndex] is TIdAttachment) then begin //general attachment li := lvAtt.Items.Add; li.ImageIndex := 8; li.Caption := TIdAttachment(idMsg.MessageParts.Items[intIndex]).Filename; li.SubItems.Add(TIdAttachment(idMsg.MessageParts.Items[intIndex]).ContentType); dm.tbAtts.Insert; dm.tbAttsnome.Value := TIdAttachment(idMsg.MessageParts.Items[intIndex]).Filename; dm.tbAttstipo.Value := TIdAttachment(idMsg.MessageParts.Items[intIndex]).ContentType; dm.tbAttsCodMsg.Value := dm.tbDledMailcodMsg.Value; dm.tbAtts.Post; //TIdAttachment(idMsg.MessageParts.Items[intIndex]).SaveToFile( //TIdAttachment(idMsg.MessageParts.Items[intIndex]).Filename); end else if idMsg.MessageParts.Items[intIndex] is TIdText then begin dm.tbDledMail.Edit; dm.tbDledMailcontent.Assign(TIdText(idMsg.MessageParts.Items[intIndex]).Body); dm.tbDledMail.Post; //TIdText(idMsg.MessageParts.Items[intIndex]).Body.SaveToFile( //TIdText(idMsg.MessageParts.Items[intIndex]).DisplayName); //TIdText(idMsg.MessageParts.Items[intIndex]).Body; redtbody.LoadStrings(TIdText(idMsg.MessageParts.Items[intIndex]).Body); end else showmessage(´Exceção!´); Status(0, ´Mensagem recebida!´); end; //try except begin Status(0, ´Desconectado.´); showmessage(´Não foi possível receber a mensagem!´); end; end; //PopDisconnect; Busy(false); end; end;//procedure
redtBody na verdade é o HTML Viewer.
O que eu deveria fazer para exibir as imagens junto da mensagem?
Mtlfk
Curtidas 0