Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-05-2016
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.084
Poder: 18
juanelo Va por buen camino
Mira y aunque no lo creas (bueno si lo creerás porque te esta pasando) me pasa exactamente lo mismo, aunque en mi caso no es siempre, y no he logrado detectar las circunstancias que ocasionan el error.
Pero como tu, ya me tenia loco y habia que dar una solucion al problema (al cliente), y esto es lo que hice, nada elegante ni soluciona el problema, pero si que funciona.
Código Delphi [-]
....
// Conectamos con el servidor SMTP
  while(Intento < 2)
  {

    try
    {
      try
      {
        Application->ProcessMessages();
        if(Barra != NULL)
          Barra->Panels->Items[0]->Text="Conectando ... ";

          if(UsaSTARTTLS)
            SMTP->Connect(IdTimeoutDefault);
          else
            SMTP->Connect();
            
          if(UsaSTARTTLS && SMTP->SendCmd("STARTTLS", 220) == 220)// se coloca PassThrough a false
            SSL->PassThrough = false;
            
          if(SMTP->Connected())
          {
            Application->ProcessMessages();

            if(UsaSTARTTLS)
              SMTP->Authenticate();
            if(Barra != NULL)
              Barra->Panels->Items[0]->Text="Enviando correo ... ";
                SMTP->Send(Mensaje);
            Application->ProcessMessages();
            if(Barra != NULL)
              Barra->Panels->Items[0]->Text="Desconectando ... ";
                SMTP->Disconnect();
            Application->ProcessMessages();
            if(Barra != NULL)
              Barra->Panels->Items[0]->Text="Correo Enviado ... ";

                if(EsFactura || EsCPRN)
                  MarcaFacturaEnviadaPorMail(CveDocto,EnviaXML,-1,TipoDoc);
          }
          Intento=2;
          PuedeCerrar=true;
      }
      catch(Exception &e)
      {
        Que=false;
        if(e.Message.AnsiPos("load") == 0)  // Por error de Indy
        {
          Intento=2;
          Application->ProcessMessages();
          Que=false;
          if(Barra != NULL)
           Barra->Panels->Items[0]->Text="Error en el envio";
          Application->MessageBox(e.Message.c_str(),"Error",MB_OK);
        }
        else
          Intento++;

        PuedeCerrar=false;
      }
    }
    __finally
    {
      if(SMTP->Connected())
        SMTP->Disconnect();       
      }   
    }
  }

Basicamente lo que se hace es cachar el error de "Load ..." e intentar nuevamente, lo que me di cuenta es que solo una vez lanza ese error, las siguientes no lo hace (si no cierras la aplicacion).
Espero te ayude al menos a darle solucion al cliente, ya luego veremos de que se trata.

NOTA: mi proyecto es tambien BCB6 pero con Indy 9.0.14
__________________
Ya tengo Firma!
Responder Con Cita
  #2  
Antiguo 06-05-2016
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por juanelo Ver Mensaje
Mira y aunque no lo creas (bueno si lo creerás porque te esta pasando) me pasa exactamente lo mismo, aunque en mi caso no es siempre, y no he logrado detectar las circunstancias que ocasionan el error.
Pero como tu, ya me tenia loco y habia que dar una solucion al problema (al cliente), y esto es lo que hice, nada elegante ni soluciona el problema, pero si que funciona.
Gracias por la respuesta; lo de la elegancia, si funciona, como queda en segundo plano. Sólo una pregunta: Tienes en varios sitios supongo que una variable UsaSTARTTLS; ¿de dónde toma el valor?
Responder Con Cita
  #3  
Antiguo 06-05-2016
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Bueno. Después de muchas idas y venidas, de estar a punto de mandar todo a hacer puñetas me ha funcionado. En una aplicación que tengo instalada en el PC vienen las dos librerías dichosas ssleay32.dll y libeay32.dll, que venían con el programa cuando se instaló.

Ya desesperado, por aquello que en el peor de los casos no iba a funcionar tampoco, las copié en la carpeta y ha salido arreando de maravilla. Según las fichas de propiedades de ambos ficheros se trata de la versión 1.0.0d.
Responder Con Cita
Respuesta



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
?Envio de correos ? jasmad Lazarus, FreePascal, Kylix, etc. 16 02-10-2012 15:45:02
Error al enviar correos con TIdSMTP RaulChemical Internet 1 05-03-2008 17:15:46
Detener envío de e-mail con TIdSMTP gluglu Internet 1 18-05-2007 17:13:10
Envio de Correos Masivo Esau Internet 2 10-04-2007 01:46:11
Envio de archivos adjuntos con TIdSmtp murci Internet 3 14-02-2007 13:27:02


La franja horaria es GMT +2. Ahora son las 13:54:30.


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