Fórum Acessar Caixa de email via IMAP com Indy IMAP4 #451687
12/08/2013
0
boa tarde, alguém tem algum caminho sobre como utilizar este componente para ler uma caixa de e-mail, meu problema consiste em abrir uma caixa de e-mail, ler quantas mensagens tem em uma determinada data, contar elas e guardar em um bd, meu servidor de e-mail está na UOLHOST, fiz o teste com pop e ele lê mas a medida que vai lendo em um determinado momento dá uma mensagem de erro que não retorna nada. O mesmo teste de acesso e leitura em uma conta do gmail funcionou perfeitamente, por isso estou querendo fazer o teste usando imap para ver se pelo menos assim funciona, abaixo segue o teste feito com pop.
with POP do begin
//IOHandler := IO_OpenSSL;
AutoLogin := True;
Host := 'pop.provedor.com.br';
Username := 'email@provedor.com.br';
// UseTLS := utUseImplicitTLS;
Password := 'senha123';
Port := 110;
end;
//TIdSSLIOHandlerSocketOpenSSL
with IO_OpenSSL do begin
Destination := 'pop.provedor.com.br:110';
Host := 'pop.provedor.com.br';
Port := 110;
SSLOptions.Method := sslvSSLv23;
SSLOptions.Mode := sslmClient;
end;
Memo1.Lines.Clear;
//Conectamos!
pop.Connect;
//Obtemos o numero de emails que ha na fila
NumMsgs := pop.CheckMessages;
gauge1.MaxValue := nummsgs;
Memo1.lines.add('Emails:' +IntToStr(NumMsgs));
for n:=1 to NumMsgs do
begin
try
pop.RetrieveHeader(n,idmsg);
except
on E:exception do ShowMessage(E.Message);
end;
{ if idmsg.date = date then
begin}
Memo1.Lines.Add('Data: '+datetostr(idmsg.Date)+' Email Nº: '+IntToStr(n)+' De: '+idmsg.From.Address+' Assunto: '+idmsg.Subject);
// end;
idmsg.clear;
gauge1.addprogress(n);
gauge1.refresh;
end;
pop.Disconnect;
with POP do begin
//IOHandler := IO_OpenSSL;
AutoLogin := True;
Host := 'pop.provedor.com.br';
Username := 'email@provedor.com.br';
// UseTLS := utUseImplicitTLS;
Password := 'senha123';
Port := 110;
end;
//TIdSSLIOHandlerSocketOpenSSL
with IO_OpenSSL do begin
Destination := 'pop.provedor.com.br:110';
Host := 'pop.provedor.com.br';
Port := 110;
SSLOptions.Method := sslvSSLv23;
SSLOptions.Mode := sslmClient;
end;
Memo1.Lines.Clear;
//Conectamos!
pop.Connect;
//Obtemos o numero de emails que ha na fila
NumMsgs := pop.CheckMessages;
gauge1.MaxValue := nummsgs;
Memo1.lines.add('Emails:' +IntToStr(NumMsgs));
for n:=1 to NumMsgs do
begin
try
pop.RetrieveHeader(n,idmsg);
except
on E:exception do ShowMessage(E.Message);
end;
{ if idmsg.date = date then
begin}
Memo1.Lines.Add('Data: '+datetostr(idmsg.Date)+' Email Nº: '+IntToStr(n)+' De: '+idmsg.From.Address+' Assunto: '+idmsg.Subject);
// end;
idmsg.clear;
gauge1.addprogress(n);
gauge1.refresh;
end;
pop.Disconnect;
Fundação Aparecida
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)