Ir al contenido



Foto

Problema al tratar de conectar con gmail

delphi gmail mail correo

  • Por favor identifícate para responder
8 respuestas en este tema

#1 genriquez

genriquez

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 511 mensajes
  • LocationCali, Colombia

Escrito 10 febrero 2017 - 07:29

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.


delphi
  1. procedure GetGmailBodyTextParts(const UserName, Password: string; BodyTexts: TStrings);
  2. var
  3. S: string;
  4. MsgIndex: Integer;
  5. MsgObject: TIdMessage;
  6. PartIndex: Integer;
  7. IMAPClient: TIdIMAP4;
  8. OpenSSLHandler: TIdSSLIOHandlerSocketOpenSSL;
  9. begin
  10. BodyTexts.Clear;
  11. IMAPClient := TIdIMAP4.Create(nil);
  12. try
  13. OpenSSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  14. try
  15. OpenSSLHandler.SSLOptions.Method := sslvSSLv3;
  16. OpenSSLHandler.SSLOptions.SSLVersions := [sslvSSLv3];
  17. OpenSSLHandler.SSLOptions.VerifyDepth := 0;
  18. OpenSSLHandler.SSLOptions.VerifyMode := [];
  19.  
  20. //OpenSSLHandler.SSLOptions.Mode:=sslmUnassigned;
  21. //OpenSSLHandler.ConnectTimeout:=3500; //
  22. //OpenSSLHandler.PassThrough:=true;
  23.  
  24. IMAPClient.IOHandler := OpenSSLHandler;
  25. IMAPClient.Host := 'imap.gmail.com';
  26. IMAPClient.Port := 993;
  27. IMAPClient.UseTLS := utUseImplicitTLS;
  28. IMAPClient.Username := UserName;
  29. IMAPClient.Password := Password;
  30.  
  31. //OpenSSLHandler.Open; //
  32. //OpenSSLHandler.StartSSL;
  33.  
  34.  
  35. IMAPClient.Connect;
  36. try
  37. if IMAPClient.SelectMailBox('INBOX') then
  38. begin
  39. BodyTexts.BeginUpdate;
  40. try
  41. for MsgIndex := 1 to IMAPClient.MailBox.TotalMsgs do
  42. begin
  43. MsgObject := TIdMessage.Create(nil);
  44. try
  45. S := '';
  46. IMAPClient.Retrieve(MsgIndex, MsgObject);
  47. MsgObject.MessageParts.CountParts;
  48. if MsgObject.MessageParts.TextPartCount > 0 then
  49. begin
  50. for PartIndex := 0 to MsgObject.MessageParts.Count - 1 do
  51. if MsgObject.MessageParts[PartIndex] is TIdText then
  52. S := S + TIdText(MsgObject.MessageParts[PartIndex]).Body.Text;
  53. BodyTexts.Add(S);
  54. end
  55. else
  56. BodyTexts.Add(MsgObject.Body.Text);
  57. finally
  58. MsgObject.Free;
  59. end;
  60. end;
  61. finally
  62. BodyTexts.EndUpdate;
  63. end;
  64. end;
  65. finally
  66. IMAPClient.Disconnect;
  67. end;
  68. finally
  69. OpenSSLHandler.Free;
  70. end;
  71. finally
  72. IMAPClient.Free;
  73. end;
  74. end;


  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.239 mensajes
  • LocationRepública Dominicana

Escrito 10 febrero 2017 - 09:11

Debería de funcionarte, ¿Has probado utilizando TLS1.2 con ECDSA?, creo que GMall se ha estado moviendo por ese lado, toma en cuenta deshabilitar la compresión.

 

Saludos.


  • 0

#3 genriquez

genriquez

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 511 mensajes
  • LocationCali, Colombia

Escrito 10 febrero 2017 - 09:35

gracias por tu respuesta,  investigaré por el lado de TLS1.2 con ECDSA,  les agradecería si tienen alguna rutina que les funcione.  

 

Saludos.


  • 0

#4 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.658 mensajes
  • LocationMéxico

Escrito 10 febrero 2017 - 09:36

Hola amigo Gustavo

 

Me sucedió algo similar que solucioné configurando el correo en el Tab Reenvío y correoPOP/IMAP de mi cuenta de Gmail.

 

En mi caso sólo uso IMAP como lo muestro en la imagen adjunta.

 

Saludos

Archivos adjuntos


  • 0

#5 genriquez

genriquez

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 511 mensajes
  • LocationCali, Colombia

Escrito 10 febrero 2017 - 10:04

Hola amigo Gustavo

 

Me sucedió algo similar que solucioné configurando el correo en el Tab Reenvío y correoPOP/IMAP de mi cuenta de Gmail.

 

En mi caso sólo uso IMAP como lo muestro en la imagen adjunta.

 

Saludos

 

Ya revisé la configuración de mi cuenta y está igual que la tuya.  con el IMAP activado.  :(


  • 0

#6 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.658 mensajes
  • LocationMéxico

Escrito 10 febrero 2017 - 11:41

Ya revisé la configuración de mi cuenta y está igual que la tuya.  con el IMAP activado.   :(

 

Caray!!!

 

Hace algunas semanas hice un programa que recibe los correos desde una cuenta de GMail y funcionó correctamente, lamentablemente lo tengo en mi casa, por la tarde/noche que llegue veo que hice para que funcionara. (y)

 

Saludos


  • 0

#7 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.658 mensajes
  • LocationMéxico

Escrito 10 febrero 2017 - 08:59

Hola
 
Pues ya revisé cual es el problema y veo un par de diferencias.
 
Éste es el código que yo uso.

 


delphi
  1. POP.Host := 'imap.gmail.com';
  2. POP.Port := 995; //Diferencia
  3. POP.Username := 'usuario';
  4. POP.Password := 'contraseña';
  5.  
  6. SSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  7. SSL.Port := POP.Port;
  8. SSL.SSLOptions.Method := sslvSSLv23; //Diferencia
  9.  
  10. POP.IOHandler := SSL;
  11. POP.UseTLS := utUseImplicitTLS;
  12. POP.Connect;

Saludos

 

Edito: Está desarrollado con Delphi XE2.


  • 0

#8 Gaston

Gaston

    Advanced Member

  • Miembros
  • PipPipPip
  • 72 mensajes

Escrito 10 febrero 2017 - 11:19

Hace unos años Gmail implementó una opción que por default está desactivada, que es la opción de activar aplicaciones menos seguras. Si esta opción no está activada será imposible acceder al correo.

 

e2ef050b31f74b2f55e7359b38f3db4bo.png

 

 

Para dar con la opción: https://www.google.c.../lesssecureapps

 

Saludos.

 


  • 0

#9 genriquez

genriquez

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 511 mensajes
  • LocationCali, Colombia

Escrito 13 febrero 2017 - 07:47

Hola
 
Pues ya revisé cual es el problema y veo un par de diferencias.
 
Éste es el código que yo uso.

 


delphi
  1. POP.Host := 'imap.gmail.com';
  2. POP.Port := 995; //Diferencia
  3. POP.Username := 'usuario';
  4. POP.Password := 'contraseña';
  5.  
  6. SSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  7. SSL.Port := POP.Port;
  8. SSL.SSLOptions.Method := sslvSSLv23; //Diferencia
  9.  
  10. POP.IOHandler := SSL;
  11. POP.UseTLS := utUseImplicitTLS;
  12. POP.Connect;

Saludos

 

Edito: Está desarrollado con Delphi XE2.

 

 

Gracias Ego y Gastón, efectivamente con POP3 es más sencillo y funcionó bien, pero como dice Gastón, fué necesario activar lo de aplicaciones menos seguras.   con IMAP aún activando la opción de google de menos segura no funciona todavía.  pero para efectos prácticos POP3 es suficiente,  me queda la duda de como hacerlo con IMAP.  pero ya será en otra oportunidad, ya que el software hay que entregarlo y no puedo gastar más tiempo en pruebas.

 

Saludos y muchas gracias por sus respuestas.


  • 1





Etiquetado también con una o más de estas palabras: delphi, gmail, mail, correo