Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-10-2016
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
gmail e IMAP error

Hola!

Hace un tiempo escribí un programa que leía el correo de gmail vía Indy e IMAP.

Acabo de rescatarlo, y veo que, sin haber tocado nada, no recibe el correo.

Estoy utilizando un TIdSSLIOHandlerSocketOpenSSL y un TIdIMAP4, configurados creo que correctamente (al menos, hace un año funcionaban con esta configuración)

La excepción aparece después de conectar, al seleccionar el mailbox:

Unable to execute command, wrong connection state;Current connection state: Authenticated.

Alguna idea al respecto?


Gracias por adelantado

Edu
Responder Con Cita
  #2  
Antiguo 19-10-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Deberias poner el codigo

Hace no mucho he visto algun que otro hilo en donde tenian problemas con Indy + Gmail. Creo que la solucion era habilitando "aplicaciones no seguras" o algo asi desde el propio Gmail

Busca en los foros o sino revisa los hilos que aparecen abajo de todo
Responder Con Cita
  #3  
Antiguo 19-10-2016
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
Hola!

No he puesto el código porque he usado lo que aparece en todos los ejemplos que hay por internet, nada nuevo.

De hecho mi pregunta va más dirigida a saber si desde gmail se han aplicado cambios en la seguridad que han hecho que estas aplicaciones hayan dejado de funcionar.

El tema de permitir las aplicaciones no seguras ya lo tengo hecho, sin resultado

Gracias

Edu
Responder Con Cita
  #4  
Antiguo 19-10-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Dependiendo del tiempo que tenga el programa sí que deberás cambiar cosas en la conexión.
Normalmente casi todos los servidores se han vuelto más restrictivos. Sin ver código el código que estás utilizando es difícil saber lo que hay que cambiar, pero si revisas los últimos códigos publicadops en el club (hay un hilo de no hace más de 2 semanas que hablaba sobre el tema) puedes compararlo con el tuyo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 19-10-2016
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
gmail e IMAP

Hola:

Simplificando, éste es el código que tengo:

Código Delphi [-]
function GetGmailMessageCount(const UserName, Password: string): Integer;
var
  IMAPClient: TIdIMAP4;
  OpenSSLHandler: TIdSSLIOHandlerSocketOpenSSL;
begin
  Result := 0;
  IMAPClient := TIdIMAP4.Create(nil);
  try
    OpenSSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
    try
      OpenSSLHandler.SSLOptions.Method := sslvSSLv3;
      IMAPClient.IOHandler := OpenSSLHandler;
      IMAPClient.Host := 'imap.gmail.com';
      IMAPClient.Port := 993;
      IMAPClient.UseTLS := utUseImplicitTLS;
      IMAPClient.Username := UserName;
      IMAPClient.Password := Password;
      IMAPClient.Connect;
      try
        if IMAPClient.SelectMailBox('INBOX') then
          Result := IMAPClient.MailBox.TotalMsgs;
      finally
        IMAPClient.Disconnect;
      end;
    finally
      OpenSSLHandler.Free;
    end;
  finally
    IMAPClient.Free;
  end;
end;

Responder Con Cita
  #6  
Antiguo 31-10-2016
Cristian MD Cristian MD is offline
Registrado
NULL
 
Registrado: oct 2016
Posts: 1
Poder: 0
Cristian MD Va por buen camino
Gracias por hacer la misma pregunta que iba a hacer, excelente aporte del foro ¡Gracias!
Responder Con Cita
  #7  
Antiguo 03-11-2016
Tecnofacil Tecnofacil is offline
Miembro
 
Registrado: jun 2015
Posts: 50
Poder: 9
Tecnofacil Va por buen camino
Prueba con esto, a mi me funciono hace unos días aun.
Código Delphi [-]
procedure Tfpdfemail.btn_emailClick(Sender: TObject);
  // variables y objetos necesarios para el envío
  Var
    IdSSLIOHandlerSocket: TIdSSLIOHandlerSocketOpenSSL;
    IdSMTP: TIdSMTP;
    IdMessage: TIdMessage;
    IdText: TIdText;
    sAnexo, ruta: string;
begin
    // -- ENVIO POR CORREO --
   // instanciación de objetos
  IdSSLIOHandlerSocket := TIdSSLIOHandlerSocketOpenSSL.Create(Self);
   IdSMTP := TIdSMTP.Create(Self);
  IdMessage := TIdMessage.Create(Self);
   try
    // Configuración de protocolo SSL (TIdSSLIOHandlerSocketOpenSSL)
    IdSSLIOHandlerSocket.SSLOptions.Method := sslvSSLv23;
    IdSSLIOHandlerSocket.SSLOptions.Mode := sslmClient;
     // Configuración de servidor SMTP (TIdSMTP)

    // -- PARA GOOGLE --
       IdSMTP.IOHandler := IdSSLIOHandlerSocket;
       IdSMTP.UseTLS := utUseImplicitTLS;
       IdSMTP.AuthType := satDefault;
       IdSMTP.Port := 465;
       IdSMTP.Host := 'smtp.gmail.com';
       IdSMTP.Username := 'usuario@gmail.com';
       IdSMTP.Password := 'password';

     // Configuración del mensage (TIdMessage)
    IdMessage.From.Address := 'micorreo@dominio';
    IdMessage.From.Name := 'Mi Nombre';
    IdMessage.ReplyTo.EMailAddresses := IdMessage.From.Address;
    IdMessage.Recipients.Add.Text := 'destinatario1@dominio';
    IdMessage.Recipients.Add.Text := 'destinatario2@dominio';
    IdMessage.Recipients.Add.Text := 'destinatario3@dominio';
    //Se pueden agregar todas las cuentas de destino que se necesite
    IdMessage.Subject := 'Correo automático del Sistema';
    IdMessage.Encoding := meMIME;
    // Configuración del cuerpo de email (TIdText)
    IdText := TIdText.Create(IdMessage.MessageParts);
    IdText.Body.Add('No responda a este correo, se envía automáticamente desde el sistema.');
    IdText.Body.Add('Se adjunta pdf.');
    IdText.ContentType := 'text/plain; charset=iso-8859-1';
     // Opcional - Adjunto (TIdAttachmentFile)
    sAnexo := 'C:\pdf\Algo.pdf';
    if FileExists(sAnexo) then
    begin
      TIdAttachmentFile.Create(IdMessage.MessageParts, sAnexo);
    end;
     // Conexión y autenticación
    try
      IdSMTP.Connect;
      IdSMTP.Authenticate;
    except
      on E:Exception do
      begin
        MessageDlg('Error en la conexión o autenticación: ' +
          E.Message, mtWarning, [mbOK], 0);
        Exit;
      end;
    end;
     // Envio
    try
      IdSMTP.Send(IdMessage);
      MessageDlg('Correo enviado correctamente!', mtInformation, [mbOK], 0);
    except
      On E:Exception do
      begin
        MessageDlg('Error al enviar el correo: ' +
          E.Message, mtWarning, [mbOK], 0);
      end;
    end;
  finally
    // desconectar del servidor
    IdSMTP.Disconnect;
    // liberación de las DLL
    UnLoadOpenSSLLibrary;
    // liberación de objetos
    FreeAndNil(IdMessage);
    FreeAndNil(IdSSLIOHandlerSocket);
    FreeAndNil(IdSMTP);
  end;
end;
Responder Con Cita
  #8  
Antiguo 25-01-2017
paul170185 paul170185 is offline
Miembro
 
Registrado: mar 2008
Posts: 24
Poder: 0
paul170185 Va por buen camino
Question

Hola que tal, he visto el código para envió, funciona correctamente, pero para recibir?, yo necesito recibir correos con archivos adjuntos pero no me desconecta y aparece el mismo error, alguien tiene algun ejemplo?
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
delphi imap gmail obtener mails no leidos, mas recientes, por fecha JXJ Varios 1 05-02-2014 05:51:50
Sobre error para enviar email por gmail lduron Varios 8 23-11-2011 01:19:31
Imap de indy + gmail Enan0 Internet 0 10-02-2010 09:35:02
Imap LiAnTe- Varios 1 03-01-2008 23:02:17
Problemas con IMAP albertoP PHP 1 15-10-2006 01:06:15


La franja horaria es GMT +2. Ahora son las 00:45:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi