Hola amigos.
He estado tratando de hacer algo que parece sencillo, requiero leer los correos nuevos de una cuenta de gmail y extraer de esos correos cierta información. esto ya lo hice hace algún tiempo con indy 9 y me funcionó bien, ahora con las nuevas versiones de Delphi no encuentro cual puede ser el error.
Si alguien puede ayudarme a solucionar el error o tiene alguna forma mejor de hacer la conexión con google para leer los correos se los agradecería.
El Error que presenta es : SSL3_GET_RECORD:worng version number.
Este es el código que he tenido desde hace mucho tiempo, Gracias.
procedure GetGmailBodyTextParts(const UserName, Password: string; BodyTexts: TStrings); var S: string; MsgIndex: Integer; MsgObject: TIdMessage; PartIndex: Integer; IMAPClient: TIdIMAP4; OpenSSLHandler: TIdSSLIOHandlerSocketOpenSSL; begin BodyTexts.Clear; IMAPClient := TIdIMAP4.Create(nil); try OpenSSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil); try OpenSSLHandler.SSLOptions.Method := sslvSSLv3; OpenSSLHandler.SSLOptions.SSLVersions := [sslvSSLv3]; OpenSSLHandler.SSLOptions.VerifyDepth := 0; OpenSSLHandler.SSLOptions.VerifyMode := []; //OpenSSLHandler.SSLOptions.Mode:=sslmUnassigned; //OpenSSLHandler.ConnectTimeout:=3500; // //OpenSSLHandler.PassThrough:=true; IMAPClient.IOHandler := OpenSSLHandler; IMAPClient.Host := 'imap.gmail.com'; IMAPClient.Port := 993; IMAPClient.UseTLS := utUseImplicitTLS; IMAPClient.Username := UserName; IMAPClient.Password := Password; //OpenSSLHandler.Open; // //OpenSSLHandler.StartSSL; IMAPClient.Connect; try if IMAPClient.SelectMailBox('INBOX') then begin BodyTexts.BeginUpdate; try for MsgIndex := 1 to IMAPClient.MailBox.TotalMsgs do begin MsgObject := TIdMessage.Create(nil); try S := ''; IMAPClient.Retrieve(MsgIndex, MsgObject); MsgObject.MessageParts.CountParts; if MsgObject.MessageParts.TextPartCount > 0 then begin for PartIndex := 0 to MsgObject.MessageParts.Count - 1 do if MsgObject.MessageParts[PartIndex] is TIdText then S := S + TIdText(MsgObject.MessageParts[PartIndex]).Body.Text; BodyTexts.Add(S); end else BodyTexts.Add(MsgObject.Body.Text); finally MsgObject.Free; end; end; finally BodyTexts.EndUpdate; end; end; finally IMAPClient.Disconnect; end; finally OpenSSLHandler.Free; end; finally IMAPClient.Free; end; end;