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

 
 
Herramientas Buscar en Tema Desplegado
  #12  
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
 



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 05:10:48.


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