Código
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****
abaixo de implementation cole:
uses
IdText;
{$R *.dfm}
*****
configure seus compoentes:
***TIdPOP3*******************************
IOHandler = IdSSLIOHandlerSocketOpenSSL1
AutoLogin = True
Host = 'pop.gmail.com'
Username = 'seunome@gmail.com'
SSLoptions>Method> sslvSSLv2
SSLoptions>mode> sslmUnassigned
UseTLS = utUseImplicitTLS
Password = 'suasenha'
Port = 995
*******************************************
***TIdSSLIOHandlerSocketOpenSSL**********
Destination = 'pop.gmail.com:995'
Host = 'pop.gmail.com'
Port = 995
SSLOptions.Method = sslvSSLv2
SSLOptions.Mode = sslmUnassigned
*******************************************
no envento onclick do botão:
var
lMsg: TIdMessage;
liCount: Integer;
numeroMsgs: Integer;
begin
//limpa o memo
Memo1.Lines.Clear;
//Conectamos!
if not idpop31.Connected then
Begin
idpop31.Connect;
end;
//testa a conexão
if not 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
configure assim:
***************************
IdSSLIOHandlerSocketOpenSSL2:
host: smtp.gmail.com
port: 587
SSLoptions>Method> sslvTLSv1
SSLoptions>mode> sslmUnassigned
***************************
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();
if not 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
***************************************
****************************************
*****************************************
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009