PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum extrair tags html #457391

03/10/2013

0

boa tarde pessoal e o seguinte, preciso de uma ajuda de voces, e que tenho uma rotina que recebe email atraves do componente pop3 da paleta indy, ate a parte de receber o email esta blz, so que queria tratar para pegar somente o texto do corpo do email, no memo que exibe o corpo do email esta aparecendo tambem as tags do codigo html, ate achei uma funçao que trata isso, mas o problema e que sao varias tags... exemplo:

"<H2><small><font>Prezado(a): WILL,<small></H2>
<H6><font>Segue em anexo o voucher do hotel escolhido, seja bem vindos !!!</font><small></H6>
<BR>
</body></html>"
queria remover essas tags e deixar somente o texto que esta em negrito, alguem sabe de alguma funçao que faça isso ? vou postar o codigo do botao receber que estou usando :


procedure TfrmEmail.BitBtn1Click(Sender: TObject);
var
//msg:TIdMessage;
i,curMsg,NumMsg:integer;
Imsg:integer;
pop3:TIdPOP3;
lista:TStringList;
filename,path:string;
corpo:TIdText;
html:IHTMLElement;
vHtml:string;
vText:string;
T:integer;
begin

// msg := TIdMessage.Create(nil);
memoMensagem.Clear;
memoCorpo.Clear;
path := 'C:\teste\';

POP.Host := edthost.Text;
POP.Port := StrToInt(edtporta.text);
POP.Username := edtUsername.Text;
POP.Password := edtpassword.Text;

SSL.Destination := edtHost.Text+':'+edtporta.Text;
SSL.Host := edthost.Text;
SSL.Port := strtoint(edtporta.Text);
SSL.SSLOptions.Method := sslvSSLv23;
SSL.SSLOptions.Mode := sslmClient;
ssl.ReadTimeout := 10000;
POP.Connect;
try
//quantidade de mensagens existentes na caixa postal
NumMsg := POP.CheckMessages;
memoMensagem.Lines.Add('Quantidade de Mensagens:'+IntToStr(NumMsg));
if NumMsg > 0 then
begin

//recupera individualmente cada mensagem
for curMsg := 1 to NumMsg do
begin
//recupera o header da mensagem
msg.Clear;
POP.Retrieve(curMsg,msg);
memoMensagem.Lines.Add('Mensagem Número:'+IntToStr(curMsg));
memoMensagem.Lines.Add('De: '+msg.From.Text);
memoMensagem.Lines.Add('Para: '+msg.Recipients.EMailAddresses);
memoMensagem.Lines.Add('Assunto: '+msg.Subject);
memoMensagem.Lines.Add('Data:'+FormatDateTime('dd/mm/yyy hh:mm:ss',msg.Date));
//identifica os tipos mime contidos no corpo do email
for I := 0 to Pred(msg.MessageParts.Count) do
begin
//se for attachment - salva os anexos ...
if (msg.MessageParts.Items[i] is TIdAttachment) then
begin
filename := path+TIdAttachment(msg.MessageParts.Items[i]).FileName;
if FileExists(filename) then
DeleteFile(filename);
TIdAttachment(msg.MessageParts.Items[i]).SaveToFile(filename);
memoMensagem.Lines.Add('Arquivo '+filename+' foi salvo');

end
//se nao for attachment considera como corpo da mensagem
else
begin
if msg.MessageParts.Items[i] is TIdText then
begin
memoCorpo.Lines.Add('Texto:'+TIdText(msg.MessageParts.Items[i]).Body.Text);

end;
end;
end;
finally
sPanel1.Caption := 'Desconectando ...';
POP.Disconnect;
screen.Cursor := crDefault;
end;
sPanel1.Caption := 'Pronto !!!';


so lembrando estou sando delphi 2010 ...
Willian Bento

Willian Bento

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar