Componente Indy POP3 visualizar mesma mensagem mais de uma vez
Olá, eu estou com um pequeno problema. Preciso visualizar o conteúdo de um email mais de uma vez. Do jeito que está agora eu só consigo ver uma vez depois não mais. Alguém pode ajudar?
Geovane Moreira
Curtidas 0
Melhor post
Fabricio Kawata
03/04/2018
Oi Geovane. Isso depende muito do contexto. Uma vez que você dá um Retrieve no servidor, a mensagem vem pra você e dessa forma você pode persistir o seu conteúdo de alguma forma (banco de dados, xml, arquivo, etc) para visualizá-la posteriormente. Seria mais ou menos o que os softwares clientes de e-mail fazem. Qualquer coisa posta o seu código aqui pra gente e informe o motivo de você não estar conseguindo visualizar o conteúdo mais de uma vez (ex: se dá alguma exception, erro de requisição, etc).
Forte abraço!
Forte abraço!
GOSTEI 1
Mais Respostas
Geovane Moreira
29/03/2018
Eu estou salvando o conteúdo num banco de dados. Mas eu queria que ele me mostrasse tudo o que tem na caixa de entrada do email, mesmo sendo lido ou não. Porque o seu sistema vai ser usado em vários programas e locais e quando um abrir eu quero que os outros ainda possam abrir e visualizar também. Meu código está assim:
procedure Receber;
var MessageCount, i:integer;
begin
try
if IdPOP31.Connected then IdPOP31.Disconnect;
IdPOP31.Host:= 'pop.gmail.com';
IdPOP31.Port:= 995;
IdPOP31.Username:= 'meu_email@dominio';
IdPOP31.Password:= 'minha_senha';
IdPOP31.IOHandler:= IdSSLIOHandlerSocket1;
IdSSLIOHandlerSocket1.SSLOptions.Method:=sslvSSLv23;
IdSSLIOHandlerSocket1.SSLOptions.Mode:=sslmClient;
IdPOP31.Connect;
MessageCount:=idPOP31.CheckMessages();
for i:= 1 to MessageCount do
begin
idPOP31.Retrieve(i, idMessage1);
//Caso queira colocar o remetente
Verifica.Text:=(idMessage1.Subject);
end;
IdPOP31.Disconnect;
except
on E:Exception do ShowMessage(e.Message);
end;
end;
procedure Receber;
var MessageCount, i:integer;
begin
try
if IdPOP31.Connected then IdPOP31.Disconnect;
IdPOP31.Host:= 'pop.gmail.com';
IdPOP31.Port:= 995;
IdPOP31.Username:= 'meu_email@dominio';
IdPOP31.Password:= 'minha_senha';
IdPOP31.IOHandler:= IdSSLIOHandlerSocket1;
IdSSLIOHandlerSocket1.SSLOptions.Method:=sslvSSLv23;
IdSSLIOHandlerSocket1.SSLOptions.Mode:=sslmClient;
IdPOP31.Connect;
MessageCount:=idPOP31.CheckMessages();
for i:= 1 to MessageCount do
begin
idPOP31.Retrieve(i, idMessage1);
//Caso queira colocar o remetente
Verifica.Text:=(idMessage1.Subject);
end;
IdPOP31.Disconnect;
except
on E:Exception do ShowMessage(e.Message);
end;
end;
GOSTEI 0
Geovane Moreira
29/03/2018
Oi Geovane. Isso depende muito do contexto. Uma vez que você dá um Retrieve no servidor, a mensagem vem pra você e dessa forma você pode persistir o seu conteúdo de alguma forma (banco de dados, xml, arquivo, etc) para visualizá-la posteriormente. Seria mais ou menos o que os softwares clientes de e-mail fazem. Qualquer coisa posta o seu código aqui pra gente e informe o motivo de você não estar conseguindo visualizar o conteúdo mais de uma vez (ex: se dá alguma exception, erro de requisição, etc).
Forte abraço!
Forte abraço!
O código é esse acima!
GOSTEI 0