Problemas com recebimento de email com indy
Pessoal,
Estou com problemas pra receber email usando o indy. o código que eu uso é o abaixo, e só recebo o cabeçalho das msgs, e não o corpo... o erro tá dando na hora de identificar os tipos de mime... alguém pode ajudar ?
Valeu !
var
NumMsg : Integer;
CurMsg : Integer;
x : Integer;
FileName : String;
Msgs : Integer;
begin
statusbar1.Panels[0].Text := ´ Conectando...´;
ListBox1.Items.Clear;
if IdPOP31.Connected then IdPOP31.Disconnect;
//Dados para conexão
IdPOP31.Connect;
try
NumMsg := IdPOP31.CheckMessages; // Pega QTD. de MSG na Caixa Postal
Label2.Caption := inttostr(nummsg);
statusbar1.Panels[0].Text := ´Conectado com sucesso !´;
if NumMsg > 0 then begin;
for CurMsg := 1 to NumMsg do begin; // Recupera Individualmente cada MSG
IdMessage1.Clear; // Recupera cabeçalho da Menssagem
IdPOP31.Retrieve(CurMsg, IdMessage1);
ListBox1.Items.Add(´Mesagem Nº ´+IntToStr(CurMsg));
ListBox1.Items.Add(´De: ´+IdMessage1.From.Text);
ListBox1.Items.Add(´Para: ´+IdMessage1.Recipients.EMailAddresses);
ListBox1.Items.Add(´Assunto: ´+IdMessage1.Subject);
ListBox1.Items.Add(´Data: ´+FormatDateTime(´dd/mm/yyyy hh:mm:ss´, IdMessage1.Date));
ListBox1.Items.Add(´´);
for x :=0 to pred(IdMessage1.MessageParts.Count) do begin // Indentifica os tipos de Mime
if(IdMessage1.MessageParts.Items[x] is TIdAttachment) then
begin
FileName := TIdAttachment(IdMessage1.MessageParts.Items[x]).FileName;
if FileExists(FileName) then
DeleteFile(FileName);
TIdAttachment(IdMessage1.MessageParts.Items[x]).SaveToFile(FileName);
ListBox1.Items.Add(´Arquivo´+FileName+´foi salvo´);
end
else
begin
if IdMessage1.MessageParts.Items[x] is TIdText then
begin
ListBox1.Items.Add(´Texto: ´+TIdText(IdMessage1.MessageParts.Items[x]).Body.Text);
ListBox1.Items.Add(´´);
listbox1.Items.SaveToFile(label3.caption+´\´+FormatDateTime(´ddmmyyyy´,date)+´.pra´);
end;
end;
end;
// IdPOP31.Delete(CurMsg);
end;
end;
finally
IdPOP31.Disconnect;
end;
end;
Estou com problemas pra receber email usando o indy. o código que eu uso é o abaixo, e só recebo o cabeçalho das msgs, e não o corpo... o erro tá dando na hora de identificar os tipos de mime... alguém pode ajudar ?
Valeu !
var
NumMsg : Integer;
CurMsg : Integer;
x : Integer;
FileName : String;
Msgs : Integer;
begin
statusbar1.Panels[0].Text := ´ Conectando...´;
ListBox1.Items.Clear;
if IdPOP31.Connected then IdPOP31.Disconnect;
//Dados para conexão
IdPOP31.Connect;
try
NumMsg := IdPOP31.CheckMessages; // Pega QTD. de MSG na Caixa Postal
Label2.Caption := inttostr(nummsg);
statusbar1.Panels[0].Text := ´Conectado com sucesso !´;
if NumMsg > 0 then begin;
for CurMsg := 1 to NumMsg do begin; // Recupera Individualmente cada MSG
IdMessage1.Clear; // Recupera cabeçalho da Menssagem
IdPOP31.Retrieve(CurMsg, IdMessage1);
ListBox1.Items.Add(´Mesagem Nº ´+IntToStr(CurMsg));
ListBox1.Items.Add(´De: ´+IdMessage1.From.Text);
ListBox1.Items.Add(´Para: ´+IdMessage1.Recipients.EMailAddresses);
ListBox1.Items.Add(´Assunto: ´+IdMessage1.Subject);
ListBox1.Items.Add(´Data: ´+FormatDateTime(´dd/mm/yyyy hh:mm:ss´, IdMessage1.Date));
ListBox1.Items.Add(´´);
for x :=0 to pred(IdMessage1.MessageParts.Count) do begin // Indentifica os tipos de Mime
if(IdMessage1.MessageParts.Items[x] is TIdAttachment) then
begin
FileName := TIdAttachment(IdMessage1.MessageParts.Items[x]).FileName;
if FileExists(FileName) then
DeleteFile(FileName);
TIdAttachment(IdMessage1.MessageParts.Items[x]).SaveToFile(FileName);
ListBox1.Items.Add(´Arquivo´+FileName+´foi salvo´);
end
else
begin
if IdMessage1.MessageParts.Items[x] is TIdText then
begin
ListBox1.Items.Add(´Texto: ´+TIdText(IdMessage1.MessageParts.Items[x]).Body.Text);
ListBox1.Items.Add(´´);
listbox1.Items.SaveToFile(label3.caption+´\´+FormatDateTime(´ddmmyyyy´,date)+´.pra´);
end;
end;
end;
// IdPOP31.Delete(CurMsg);
end;
end;
finally
IdPOP31.Disconnect;
end;
end;
Rapfreire
Curtidas 0