Usei indy 10, provavelmente funcione no 9 tbm.
Usei delphi 2006, provavelmente funcione no 7 instalando o indy 10 nele.
vá ao site:
http://indy.fulgan.com/SSL/
e baixe o pacote: indy_OpenSSL096m.zip
Crie uma nova pasta; no delphi crie um novo projeto e salve-o na nova pasta.
descompacte o pacote: indy_OpenSSL096m.zip dentro da pasta do projeto, são as dlls de SSL necessárias p/ autenticação.
veja aki as config. do GMAIL:
*************************************************************************************
Incoming Mail (POP3) Server - requires SSL: pop.gmail.com
Use SSL: Yes
Port: 995
Outgoing Mail (SMTP) Server - requires TLS: smtp.gmail.com (use authentication)
Use Authentication: Yes
Use STARTTLS: Yes (some clients call this SSL)
Port: 465 or 587
Account Name: your Gmail username (including @gmail.com)
Email Address: your full Gmail email address (username@gmail.com)
Password: your Gmail password
*************************************************************************************
///////////////////////////////////////////////////////////////////////////
Não esqueça de acessar sua conta do gmail pelo navegador, e em opçoes marcar a opção para que serviços pop3 possam acessar sua conta. (isso é feito no seu email gmail nas configurações) ///////////////////////////////////////////////////////////////////////////
No seu projeto no delphi inclua:
das paletas indy:
idPOP31
IdSSLIOHandlerSocketOpenSSL1
botão
memo
um idmessage com o nome: IdMessageteste ***a propriedade body deste compoente é a nossa mensagem****
var
lMsg: TIdMessage;
liCount: Integer;
numeroMsgs: Integer;
begin //limpa o memo
Memo1.Lines.Clear; //Conectamos! ifnot idpop31.Connected then Begin
idpop31.Connect; end;
//testa a conexão ifnot idpop31.Connected then Begin
ShowMessage('Conexão não realizada!');
Exit; End; //Obtem o nº de msg que há na caixa postal
numeroMsgs := idpop31.CheckMessages; //escreve no memo o nº de msgs que existem na caixa postal
Memo1.Lines.Add('Numero de mensagens: ' + IntToSTr(numeroMsgs));
lMsg := TIdMessage.Create; try
idpop31.Retrieve(1, lMsg);
Memo1.Lines.Text := lMsg.MsgId; for liCount := 0 to lMsg.MessageParts.Count-1 do if lMsg.MessageParts[liCount] is TIdText then
Memo1.Lines.AddStrings((lMsg.MessageParts[liCount] as TIdText).Body);
finally
lMsg.Free; end;
end;
fim funcionou, preciso aperfeiçoar ainda, mas não tive tempo. se enão me engano tha baixando uma msg só, tem que colokar um laço lá pra pegar todas.
*************************
*************************
agora preciso fazer mandar msg, se alguem conseguir me manda o tuto, p/ leandropremier*arroba*gmail.com
**************************
**************************
ainda estou no começo p/ enviar e tentando p/ ver se da certo:
*********
veja mais ou meno o codigo, pq preciso arrumar ainda:
*********
coloque outro IdSSLIOHandlerSocketOpenSSL2
envento onclike para enviar, que não envia nada. pq tha td errado:
// //IdSSLIOHandlerSocketOpenSSL2.PassThrough := True;
IdSMTP1.Connect(); //IdSMTP1.SendCmd('STARTTLS'); // IdSSLIOHandlerSocketOpenSSL2.PassThrough := false; // IdSMTP1.Authenticate(); ifnot IdSMTP1.Connected then Begin
ShowMessage('Conexão não realizada!');
Exit; end;
IdSMTP1.Send(IdMessageteste);
IdSMTP1.Disconnect; //
**************************************
***************************************
****************************************
Por leandrogp9, pesquisei mt, e não conseguiria sem outros exemplos que encontrei na net e até aki no site, mesmo que não funcionassem foram de grd ajuda
***************************************
****************************************
*****************************************