Fórum Problemas com Body ao receber o email. #325165
11/07/2006
0
Estou com um problema que não consigo receber o body do email.
Estou usando o seguinte método.
for j := 0 to Pred(Msg.MessageParts.Count) do
begin
if Msg.MessageParts.Items[j] is TIdText then
begin
Memo1.Clear;
Memo1.Lines.AddStrings(TIdText(Msg.MessageParts.Items[j]).Body);
end;
end;
e tb uso o componente TidPOP3 da paleta Indy.
Alguém sabe me dizer o que pode estar acontecendo.
Obrigado.
Dumbas
Curtir tópico
+ 0Posts
11/07/2006
Massuda
Dependendo de como a mensagem foi codificada, o conteúdo pode vir no TIdMessage.Body ou nas partes da mensagem (que é o código que você postou).
Gostei + 0
12/07/2006
Dumbas
E como eu faço para poder pegar todas as possibilidades do body. Estou precisando muito que venha o conteudo do body no email e ele ta vindo sempre vazio.
Obrigado.
Gostei + 0
12/07/2006
Massuda
// Msg é um TIdMessage Memo1.Clear; if Msg.ContentType = ´text/plain´ then begin // conteúdo da mensagem está em Msg.Body Memo1.Lines.AddStrings(Msg.Body); end else begin // ContentType deve ser ´multipart/alguma.coisa´ for j := 0 to Pred(Msg.MessageParts.Count) do begin if Msg.MessageParts.Items[j] is TIdText then begin Memo1.Lines.AddStrings(TIdText(Msg.MessageParts.Items[j]).Body); end; end; end;
Gostei + 0
12/07/2006
Dumbas
Eu fiz o que vc me passou mas ele sempre entra no else, mas não entra no for.
Eu ja tentei colocar direto o body no Memo mas tb esta vindo nulo.
Vc sabe mais alguma possibilidade?
Obrigado.
Gostei + 0
12/07/2006
Massuda
Você está lendo o email usando TIdPOP3.Retrieve? Algumas pessoas usam TIdPOP3.RetrieveHeader para ler os cabeçalhos e se esquecem de usar TIdPOP3.Retrieve para pegar o resto da mensagem.
Tem certeza que o email lido tem realmente um conteúdo/body? Se sim, que tipo de conteúdo tem no email?
Gostei + 0
12/07/2006
Dumbas
Estou usando o RetriveHeader, mas quando uso somente o Retrive, apos algum tempo baixando ele me retorna um erro de ´Uneven size in DecodeToStream´. Sabe o que pode ser isso?
Obrigado.
Gostei + 0
12/07/2006
Dumbas
Coloquei a parde de NoDecode e NoEncode do TidMessage com true e funcionou, mas tenho um erro que ele me retorna quando esta quase terminando ´Max Line Lengh exeeded´. Não estou conseguindo intender como ele esta exedendo o tamanho a quantidade de mensagem exitente.
Obriagdo.
Gostei + 0
12/07/2006
Massuda
Gostei + 0
12/07/2006
Dumbas
E sobre essa questão do ´Max exeeded...´? Sober a questão do Decode eu ja consegui.
Obrigado.
Gostei + 0
12/07/2006
Massuda
Se tiver tempo, seria recomendável você atualizar seu Indy, como já citei num post anterior.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)