Club Delphi  
    Paypal   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

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-02-2004
Avatar de Nuria
Nuria Nuria is offline
Miembro
 
Registrado: may 2003
Posts: 531
Poder: 24
Nuria Va por buen camino
Hola ester!

Porque no intentas capturar el error cuando vas a conectar de esta manera :

Código:
  try
     smtp.Connect();
     smtp.Send(msg);
     smtp.Disconnect;
  except
    /// Aqui capturas las excepciones, osea los errores que te da,
    por ejemplo:
    on E: EIdSocketError do begin
       Showmessage('No se ha podido enviar el email.'+ #13 +
                           'Host desconocido o incorrecto.');
    end
Espero que te sirva de ayuda.

Saludos!
Responder Con Cita
  #2  
Antiguo 25-02-2004
Julià T. Julià T. is offline
Miembro
 
Registrado: may 2003
Ubicación: en el teclado
Posts: 314
Poder: 24
Julià T. Va por buen camino
sólo una pequeña correción
Código:
  
  try
     smtp.Connect();
     smtp.Send(msg);
    // smtp.Disconnect; si se produciera un error no podrias volver a conectar
  except
    /// Aqui capturas las excepciones, osea los errores que te da,
    por ejemplo:
    on E: EIdSocketError do begin
       Showmessage('No se ha podido enviar el email.'+ #13 +
                           'Host desconocido o incorrecto.');
    end
   if smtp.connected then smtp.Disconnect; //
Responder Con Cita
  #3  
Antiguo 25-02-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Para ser exactos... si ocurre un error distinto de EIdSocketError tampoco se desconectaría... puesto que la excepción sigue saltantose el stack...

lo correcto, sería:

Código:
try
  smtp.Connect();
  try
    smtp.Send(msg);
  finally
    smtp.Disconnect; // no es necesario chequear si está conectado... pues se ejecuta
                        // solo si fue posible conectarse (y siempre que se haya conectado)
  end;
except
  // Aqui capturas las excepciones, osea los errores que te da,
  // por ejemplo:
  // capturará todas las excepciones, ocurridas durante la conexión, el envio del
  // mensaje y la desconección.
  on E: EIdSocketError do begin
     Showmessage('No se ha podido enviar el email.'+ #13 +
                         'Ha ocurrido el error de socket No. ' + IntToStr(e.LastError));
     // esto debido a que el error de sockets no puede darse solo porque 
     // el host sea desconocido o incorrecto.
     // mas info siguiendo este enlace
end
Hasta luego.


Última edición por jachguate fecha: 25-02-2004 a las 03:48:19. Razón: resaltar el código
Responder Con Cita
  #4  
Antiguo 25-02-2004
Avatar de Nuria
Nuria Nuria is offline
Miembro
 
Registrado: may 2003
Posts: 531
Poder: 24
Nuria Va por buen camino
Menos mal, siempre estaís ahí, para corregirme...
Responder Con Cita
  #5  
Antiguo 25-02-2004
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 24
sitrico Va por buen camino
Bueno, he tenido el mismo problema (el email no se envía) y no aparece el error.

Uso el código:

Código:
Try
   If not(SMTP.Connected) then
      SMTP.Connect;
   SMTP.Send(Mensage);
   SMTP.Disconnect;
   Application.MessageBox('El Registro se Completo con exito','Atención',MB_Ok);
   ModalResult := mrOk;
Except
   Application.MessageBox('El Registro no pudo ser completado','Atención',MB_Ok);
   End;
Que no anida los dos Try como en el código de jachguate (cosa que voy a arreglar) pero lo que si descubri que el error se genera cuando se una una dirección de email invalida en la propiedad :

Mensage.From.Address := fromAddress.Text;

En la que yo asignaba el valor dado por el usuario.
__________________
Sitrico
Responder Con Cita
  #6  
Antiguo 20-03-2004
Avatar de VolaRe
VolaRe VolaRe is offline
Miembro
 
Registrado: ago 2003
Posts: 121
Poder: 24
VolaRe Va por buen camino
Strico como se si un mail es invalido.

Yo tengo un problema parecido, no me envia el mail y no se porque, ya eh provado capturando los errores incluso lo que dice jachgate lo de capturar el error en el socket, y na de na, te paso mi codigo haber si....

Código:
procedure TForm1.Button1Click(Sender: TObject);
begin
  try
    IdSmtp1.Connect;
    try
      // Envio el mensaje.
      IdSmtp1.Send(idMessage1);
    finally
      IdSmtp1.Disconnect;
    end;
    ShowMessage('Enviado Correctamente');
  except
     // Capturo algunas excepciones que pueden ocurrir
    ON E: EIdProtocolReplyError do begin
      ShowMessage('No se ha podido enviar el email.' + #13 +
          'Incorrecto el email o el usuario o la password.');
    end;
    on E: EFOpenError do begin
      ShowMessage('No se ha podido enviar el email.' + #13 +
          'Fichero Adjunto desconocido o erróneo.');
    end;
    on E: EIdSocketError do begin
      ShowMessage('No se ha podido enviar el email.'+ #13 +
          'Host desconocido o incorrecto. Ha ocurrido el error en el sochet nº ' + IntToStr(e.LastError));
    end
    else begin
      ShowMessage('Fallo en el envio de email');
      Raise;
    end;
  end;
  if IdSmtp1.Connected then IdSmtp1.Disconnect;
end;
El fallo que me indica es el ultimo, fallo en el envio de mail, y cuando pasa a raise me indica "Connection Closed Gracefully".

Haber si de una vez consigo hacer funcionar este componente, gracias.
Responder Con Cita
  #7  
Antiguo 21-03-2004
Julià T. Julià T. is offline
Miembro
 
Registrado: may 2003
Ubicación: en el teclado
Posts: 314
Poder: 24
Julià T. Va por buen camino
Hola Volare:

te falla la conexión

Código:
  try
    IdSmtp1.Connect;//falla aquí
    try
      // Envio el mensaje.
      IdSmtp1.Send(idMessage1);
    finally
      IdSmtp1.Disconnect;
    end;
    ShowMessage('Enviado Correctamente');
  except
    ...
  end;
para poderte conectar, necesitas:
Host: la dirección o el nombre de tu servidor de correo. ej tu_servidor.com
User: la cuenta de usuario. ej tu_cuenta_de_correo
Password: el pàssword del usuario. ej tu_password_de_correo
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


La franja horaria es GMT +2. Ahora son las 18:58:51.


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