Ir para conteúdo
Fórum Script Brasil
  • 0

Acessando email


Pimpao

Pergunta

Boa tarde,

Bom pessoal, eu to tentando fazer um sisteminha (na veradade é mais pra aprender mesmo) simples que acessa um webemail e me retorna os "subjects" dos emails pra posteriormente baixar os anexos... eu consegui fazer usando o método POP3 (usando TIdPop3) mas eu quero tambem que dê para acessar usando o método HTTP e eu não to conseguindo (não sei nem se é possivel fazer isso pelo delphi na verdade).

Um exemplo doq eu to tentando fazer é isso: http://www.mailresender.com.ar/downloads.html (podem baixar p ver como é, é bem simples n precisa nem de instalacao) esse MailResender tem 3 métodos (HTTP,POP3,IMAP).

To tentando usar o TIdHTTP pra acessar usando o Post (tentando acessar Gmail) com o código abaixo:

var 
  variaveis: TStringList;
  ssl: TIdSSLIOHandlerSocket;
  http: TIdHttp;
begin
  http := TIdHttp.Create(Self);
  ssl := TIdSSLIOHandlerSocket.Create(Self);
  variaveis := TStringList.Create;

  variaveis.Add('Email=MeuEmail');
  variaveis.Add('Passwd=MinhaSenha');
  variaveis.Add('ltmpl=default');
  variaveis.Add('ltmplcache=2');
  variaveis.Add('continue=http://mail.google.com/mail/?ui=html&zy=l');
  variaveis.Add('service=mail');
  variaveis.Add('rm=false');
  variaveis.Add('ltmpl=default');
  variaveis.Add('scc=1');
  variaveis.Add('PersistentCookie=no');
  variaveis.Add('rmShown=1');

  http.IOHandler := ssl;
  Memo1.Clear;
  Memo1.Lines.Add(http.Post('https://www.google.com/accounts/ServiceLoginAuth?service=mail',variaveis));

  variaveis.Free;
  ssl.Free;
  http.Free;

Mas ele me retorna o html daquele "Redirecionando", não da caixa de entrada.

Não sei nem se é o jeito mais facil de fazer, procurei bastante na net e não achei nada a respeito, espero q me ajudem. :D

Obrigado pessoal...

Editado por Pimpao
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Jhonas

Eu olhei tópico a tópico dessa busca sua e não achei nada a respeito, eu já tinha procurado bem antes de postar tambem... é que eu realmente não acho NADA a respeito do que eu quero... só acho mensagens com assunto de Enviar Email (SMTP) e Receber (POP3), sobre o HTTP que eu queria não acho nada...

Obrigado desde já...

Link para o comentário
Compartilhar em outros sites

  • 0
  • 0

Bom, editando aqui meu post, parece que eu to quase lá! ta me ajudando mt Jhonas!

Tipo, eu descobri q o Google tem um servico pra conectar via softwares o link:

http://code.google.com/intl/pt-BR/apis/acc...tml#ClientLogin

E me retorna corretamente a resposta, dessa maneira: (como mostra o exemplo no google)

SID=DQAAAGgA...7Zg8CTN
LSID=DQAAAGsA...lk8BBbG
Auth=DQAAAGgA...dk3fA5N

Mas e agora pra eu logar no email? to meio confuso o.o

Editado por Pimpao
Link para o comentário
Compartilhar em outros sites

  • 0

Mas na hora de compilar da esse erro:

[Error]uPrincipal.pas(453): Undeclared identifier: 'TidStringList';

[Error] uPrincipal.pas(456): Undeclared identifier: 'TIdStringStream';

Parece que ta faltando declarar alguma coisa na cláusula uses, procurei no google e não achei qual é =/

Realmente ... se fosse somente TStringList seria a unit Classes

Veja a versão do indy ... se for o nativo que vem com o delphi 7 não tem

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Sim é o nativo do delphi, mas eu já consegui sair dessa parte, eu consegui receber a autenticacao do google, e to procurando saber como faco pra usar ela pra ver a caixa de entrada do Gmail...

To tentando assim:

auth := http.Post('https://www.google.com/accounts/ClientLogin',variaveis);
auth := Copy(auth,Pos('Auth=',auth)+5,length(auth));
Memo1.Lines.Add(http.Get('http://mail.google.com/mail/?auth='+auth));

Mas ele da um erro muito louco olha:

20d68dabb7f31a9e680c2368759e6385.jpg

Vlw

Editado por Pimpao
Link para o comentário
Compartilhar em outros sites

  • 0
EIdHTTPProtocolException Class EIdHTTPProtocolException Classe

Exceção levantadas durante o processamento de uma resposta HTTP.

Arquivo

IdHTTP

EIdHTTPProtocolException = class (EIdReplyRFCError); EIdHTTPProtocolException = classe (EIdReplyRFCError);

Descrição

EIdHTTPProtocolException é um descendente de EIdReplyRFCError que representa um tipo de exceção levantada pelo protocolo HTTP durante o processamento de uma resposta HTTP.

EIdHTTPProtocolException geralmente é levantada quando uma resposta inesperada HTTP de código numérico é recebida a partir da resposta HTTP.

EIdHTTPProtocolException reimplementa o construtor alterantivo CreateError para facilitar a criação de uma instância com excepção dos valores especificados nos argumentos para o construtor.

EIdHTTPProtocolException também implementa ErrorMessage para descrever o texto do protocolo da mensagem de erro.

Ver Também

EIdReplyRFCError

Informações Relacionadas

EIdHTTPProtocolException Methods EIdHTTPProtocolException Métodos

EIdHTTPProtocolException Properties EIdHTTPProtocolException Propriedades

EIdHTTPProtocolException Members EIdHTTPProtocolException deputados

maiores informações

http://www.indyproject.org/docsite/html/fr...lException.html

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...