Fórum Pegar codigo HTML ao receber email pelo POP #293793
30/08/2005
0
De qualquer forma nao estou conseguindo, estou utilizando os componentes indy.
for x :=0 to pred(IdMessagepop3.MessageParts.Count) do
begin
// Indentifica os tipos de Mime
if(IdMessagepop3.MessageParts.Items[x] is TIdAttachment) then
begin
FileName := TIdAttachment(IdMessagepop3.MessageParts.Items[x]).FileName;
if FileExists(FileName) then
DeleteFile(FileName);
TIdAttachment(IdMessagepop3.MessageParts.Items[x]).SaveToFile(FileName);
ListBox1.Items.Add(´Arquivo´+FileName+´foi salvo´);
end
else
begin
if IdMessagepop3.MessageParts.Items[x] is TIdText then
begin
ListBox1.Items.Add(´Texto: ´+TIdText(IdMessagepop3.MessageParts.Items[x]).Body.Text);
ListBox1.Items.Add(´´);
listbox1.Items.SaveToFile(label3.caption+´\´+FormatDateTime(´ddmmyyyy´,date)+´.pra´);
end;
end;
end;
Nesta parte do programa eu vejo os anexos, mas nao estou conseguindo ver se é pagina html, se alguem conseguir me ajudar eu agrade muito.
Obrigado a todos.
Icheuk
Curtir tópico
+ 0Posts
30/08/2005
Massuda
... if(IdMessagepop3.MessageParts.Items[x] is TIdAttachment) then begin FileName := TIdAttachment(IdMessagepop3.MessageParts.Items[x]).FileName; if FileExists(FileName) then DeleteFile(FileName); TIdAttachment(IdMessagepop3.MessageParts.Items[x]).SaveToFile(FileName); ListBox1.Items.Add(´Arquivo´+FileName+´foi salvo´); end ...
TIdAttachment(IdMessagepop3.MessageParts.Items[x]).ContentType
...para pelo menos um dos anexos o ContentType deve ser ´ text/html´, o que indica que o conteúdo é HTML.
Gostei + 0
31/08/2005
Icheuk
Em primeiro lugar, acredito eu todos os email (todos mesmo) deve conter um codigo html, embutido em algum lugar, pois quando mandamos um email formatado (cor, tipo de letra, etc...) no outlook e baixamos em outro programa ou webmail, conseguimos ver normalmente, e html é o padrao na net, certo.
Sendo assim eu consigo baixar os email do provedor pop sem problemas os anexos tambem, porem para padronizar gostaria de saber atraves dos componentes Indy, como vejo ou atraves de qual propriedade vejo o codigo html da menssagem, pois tenho email normais e emails formatados ou ate mesmo com paginas html, quando tempo montar o email no recebimento o que acontece é que vem desformatado e sem sentido nenhum, pois nao tenho o codigo html.
Referente a sua resposta:
TIdAttachment(IdMessagepop3.MessageParts.Items[x]).ContentType
Desta forma eu sabendo que é html/text o que devo fazer, hoje estou mandando o codigo para um webbrowser sem problemas, mas volto a dizer na minha opiniao todos os email tem um codigo html embutido(pelo que pesquisei na net).
Por exemplo pelo proprio outlook, quando mandamos um email tem ate forma para ver o codigo eles apenas nao liberam da mensagem recebida.
Obrigado.
Gostei + 0
31/08/2005
Nildo
Nem todo e-mail é composto por HTML. O Outlook e esses programas habilitam o HTML caso você use recursos de formatação. Eles habilitam HTML, incluindo a seguinte informação no cabeçalho e-mail:
Content-Type: text/html;
Então, para verificar se o e-mail recebido é HTML, você tem que fazer um parsing. Verificar a existência dessa informação citada acima, e jogar em um arquivo *.HTML o conteúdo que estiver entre [b:a30edfd645]<HTML>[/b:a30edfd645] e [b:a30edfd645]</HTML>[/b:a30edfd645].
Os anexos chegam encriptados com codificação MIME, você precisa de um componente MIME para poder desencriptar os anexos e salvar de forma binária. Creio que isso possa ajudar, caso contrário estarei lendo este tópico constantemente para dar + respostas.
Um abraço Ivan! Agradeço por tudo!
Gostei + 0
31/08/2005
Massuda
A mensagem conterá texto formatado em HTML somente se for gerada dessa forma. No caso do Outlook/Outlook Express, o default é gerar mensagem formatas em HTML, mas você pode mudar nesses programas tanto o formato de envio (no caso do OE, menu Ferramentas|Opções|Envio|Formato para envio de mensagens) como o de recebimento (no caso do OE, menu Ferramentas|Opções|Ler|Leitura de mensagens|Ler todas as mensagens em texto sem formatação).
Todo programa moderno de email é capaz de exibir mensagens formatadas em HTML se a mensagem contiver os indicadores necessários (no caso, content-type=text/html); sem o indicador, a mensagem seria exibida como texto e você veria as tags HTML.
No caso do webmail, o software do webmail (que não tem relação alguma com o servidor de email) faz a mesma coisa que o programa de email, com a diferença que toda a interface do software é feita em HTML (obviamente todas as mensagens serão exibidas em páginas formatadas usando HTML, mas isso não significa que a mensagem em si esteja em HTML).
Gostei + 0
31/08/2005
Icheuk
Obrigado.
Ps, se tiver alguma dica ou forum, apostila ou qualquer coisa sobre indy e puder passar obrigado.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)