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 18-03-2004
Avatar de VolaRe
VolaRe VolaRe is offline
Miembro
 
Registrado: ago 2003
Posts: 121
Poder: 21
VolaRe Va por buen camino
Unhappy IdSmtp

Hola,
Estoy empezando a utilizar los componentes indy, estoy intentando hacer una aplicacion para enviar mails, pero no consiguo que envie na de na, conecta y despues de un rato me dice conexion cerrada graciosamente, ¿alguien me puede decir que estoy haciendo mal?.

Yo solo pongo la direccion de correo y el asunto con su correspondiente mensaje, claro, hay que indicarle alguna ip y algun usuario, de ser asi que ipe le asigno la mia o a donde quiero que llegue. Os agradeceria que me lo aclaraseis un poco, gracias.

Pongo en el formulario IdSmtp y IdMessage
Responder Con Cita
  #2  
Antiguo 18-03-2004
Avatar de Nuria
Nuria Nuria is offline
Miembro
 
Registrado: may 2003
Posts: 531
Poder: 22
Nuria Va por buen camino
Hola volare!

El Mensaje se configura de la siguiente manera:

Código:
with idMessage do begin
    // Cuerpo del mensaje.
    Body.Clear;
    Body.Add('Aqui añades el cuerpo del mensaje);
    // Cuenta Origen.
    From.Text := EMAILORIGEN;
    // Cuenta Destino.
    Recipients.EMailAddresses := EMAILDESTINO;
    // Asunto del email.
    Subject := ASUNTO;
    // Prioridad del mensaje, ALTA.
    Priority := TidMessagePriority(mpHighest);
    // Coloco el archivo adjunto el cual enviar.
    TidAttachment.Create(idMensage.MessageParts,ARCHIVOADJUNTO);
  end;
Y el idSMPT :

Código:
 with idSMPT do begin 
   // Configuro autentificación.
   AuthenticationType := atLogin;
  Username := USERNAME;  // Nombre del usuario
  Password := PASS;  // la password
  // Configuro el servidor SMTP.
  Host := HOST;
  Port := PUERTO;
   
  try
    Connect;
    try
      // Envio el mensaje.
      Send(idMenssage);
    finally
      Disconnect;
    end;
    Msg('Enviado Correctamente');
  except
     // Capturo algunas excepciones que pueden ocurrir
    ON E: EIdProtocolReplyError do begin
      Msg('No se ha podido enviar el email.' + #13 +
          'Incorrecto el email o el usuario o la password.');
    end;
    on E: EFOpenError do begin
      Msg('No se ha podido enviar el email.' + #13 +
          'Fichero Adjunto desconocido o erróneo.');
    end;
    on E: EIdSocketError do begin
      Msg('No se ha podido enviar el email.'+ #13 +
          'Host desconocido o incorrecto.');
    end
    else begin
      Msg('Fallo en el envio de email');
    end;
  end;
  if connected then Disconnect;
end
Espero que te sirva.

Salu2!
Responder Con Cita
  #3  
Antiguo 18-03-2004
Avatar de VolaRe
VolaRe VolaRe is offline
Miembro
 
Registrado: ago 2003
Posts: 121
Poder: 21
VolaRe Va por buen camino
No me reconoce los identificadores EIdProtocolReplyError y EIdSocketError, algun comentario de lo que pueda ser??. Otra cosa sabes de alguna pag. que explique estos tipos de errores y que los enumere uno a uno??.

Te paso mi codigo y me dices si ves algo mal, en host eh puesto mi ip y el puerto eh dejado el que viene por defecto el 25

Código:
procedure TForm1.Button1Click(Sender: TObject);
begin
  IdMessage1.Body.Clear;
  //el texto del mensaje
  IdMessage1.Body.Add(Memo1.Lines.Text);
  //direccion en donde quiero enviarlo
  IdMessage1.ReceiptRecipient.Address := Edit1.Text;
  //el asunto
  IdMessage1.Subject := Edit2.Text;
  IdSmtp1.Connect;
  IdSmtp1.Send(idMessage1);
  IdSmtp1.Disconnect;
end;

end.
Espero que me digais donde esta el fallo, porque yo ya lo doy por imposible, gracias

Última edición por VolaRe fecha: 19-03-2004 a las 10:31:37.
Responder Con Cita
  #4  
Antiguo 19-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por VolaRe
No me reconoce los identificadores EIdProtocolReplyError y EIdSocketError, algun comentario de lo que pueda ser
No te los reconoce seguramente porque están declarados en alguna unidad que no incluyes en la clásula uses.

La regla de oro para lidiar con este tipo de errores en un código que provenga de una fuente confiable- como evidentemente es el caso -es usar la opción "Find in Files..." del menú "Search" para localizar la unidad adecuada que, en este caso, resulta ser IdException.

// Saludos
Responder Con Cita
  #5  
Antiguo 19-03-2004
Avatar de VolaRe
VolaRe VolaRe is offline
Miembro
 
Registrado: ago 2003
Posts: 121
Poder: 21
VolaRe Va por buen camino
gracias roman,
despues de solucionar este pequeño error, cuando envio el mail me indica, fallo en el envio de mail, a que puede ser que no me envie el mail???.

Ahora ya sabemos que no es de host ni de pass ni de socket, es de mail, que es lo que significa esto??? pues no tengo ni idea, haber si me respondeis, os lo agradeceria.

Y a ti nuria gracias por todo el codigo puesto, sobre todo por las excepciones, que no sabia ni que existieran.
Responder Con Cita
  #6  
Antiguo 19-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por VolaRe
despues de solucionar este pequeño error, cuando envio el mail me indica, fallo en el envio de mail, a que puede ser que no me envie el mail???.
En el código de Nuria agrega la instrucción raise inmediatamente debajo de la línea que manda el mensaje:

Código:
else begin
  Msg('Fallo en el envio de email');
  raise;
end;
Esto es porque el try-except-end capturó la excepción pero al no ser ninguna de las previstas sólo mostró el mensaje. La instrucción raise volverá a lanzar la excepción de manera que podrás saber de qué excepción se trata y actuar de acuerdo a ello.

// Saludos
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


La franja horaria es GMT +2. Ahora son las 15:22:06.


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