Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-07-2015
oec2509 oec2509 is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
oec2509 Va por buen camino
Enviar correo delphi 2007

Cordial Saludo para todos

Tengo la siguente situacion para ver si es posible me puedan ayudar, desde hace algunos años utilizo delphi para enviar correos con componentes INDY, lo hice con alguno de los muchos ejemplos que encontre en este foro y hasta hace poco siempre me funciono de lo más bien, lo utilice tanto para correo externos a travez de internet como para correos en una red interna con Exchange server 2003 como decia funcionaba muy bien hasta hace poco que me empezó a enviar el siguiente error "Socket error #10060 timed out, Connection timed out" investige en google y me lei todas las respuestas que encontre a este respecto. Revise firewall, lo deactive, abri puertos, revise antivirus, lo cambie, lo desintale, lo volvi a instalar y de ninguna forma me funciono más, el escenario es el siguiente:

Servidor windows 2003 Server promovido con Active directory, Exchange Server 2003, Delphi 2007 motor de base de datos SQL2000 la version de INDY se las quedo debiendo porque no encontre cual es, pero si le puedo decir que es la que esta incluida en el delphi.

en la estación de trabajo utilizó Windows 7 Ultimate 64 bit con Avast de antivirus, estación debidamente incluida en el Dominio de trabajo.

El unico cambio que se dió fue que instale un nuevo router y cambie el IP de la puerta de enlace pero todo lo demás esta igual que antes.

Una de las aplicaciones en es utilizo el envio de correos es para enviar a los empleados los comprobantes de pago la rutina que utilizo es la siguiente:

Código Delphi [-]
procedure Tfm_comprobantes_pago.EnviarMensaje( sUsuario, sClave, sHost, sAdjunto, sAsunto, sDestino, sMensaje: String );
var SMTP: TIdSMTP;
   Mensaje: TIdMessage;
   Adjunto: TIdAttachmentfile;
   Adjunt1: TIdAttachmentfile;
   sAdjunt1 : String;

begin
  sAdjunt1 := 'P:\PROURSA\Cómputo\DBFS\mensaje.jpg';
  // Creamos el componente de conexión con el servidor
  SMTP := TIdSMTP.Create( nil );
  SMTP.Username := sUsuario;
  SMTP.Password := sClave;
  SMTP.Host := sHost;
  SMTP.Port := 25;
  SMTP.AuthType := atDefault;

  // Creamos el contenido del mensaje
  Mensaje := TIdMessage.Create( nil );
  Mensaje.Clear;
  Mensaje.From.Text := sUsuario ;
  Mensaje.ReplyTo.EMailAddresses := sDestino;
  Mensaje.ReceiptRecipient.Text :='';
  Mensaje.Subject := sAsunto;
  Mensaje.Body.Text := sMensaje;
  Mensaje.Recipients.Add;
  Mensaje.Recipients.Items[0].Address := sDestino;
  Mensaje.Priority := TIdMessagePriority(1);

  // Si hay que meter un archivo adjunto lo creamos y lo asignamos al mensaje
  if sAdjunto <> '' then
  begin
    if FileExists( sAdjunto ) then begin
      Adjunto := TIdAttachmentfile.Create( Mensaje.MessageParts, sAdjunto );
      Adjunto := TIdAttachmentfile.Create( Mensaje.MessageParts, sAdjunt1 );
    end;
  end
  else
    Adjunto := nil;

  // Conectamos con el servidor SMTP
  try
    SMTP.Connect;
  except
    raise Exception.Create( 'Error al conectar con el servidor.' );
  end;

  // Si ha conectado enviamos el mensaje y desconectamos
  if SMTP.Connected then

  begin
    try
      SMTP.Send( Mensaje );
    except
      raise Exception.Create( 'Error al enviar el mensaje.' );
    end;

    try
      SMTP.Disconnect;
    except
      raise Exception.Create( 'Error al desconectar del servidor.' );
    end;
  end;

  // Liberamos los objetos creados
  if Adjunto <> nil then
    FreeAndNil( Adjunto );

  FreeAndNil( Mensaje );
  FreeAndNil( SMTP );

end;

Trate de volver al estado anterior cambiando la puerta de enlace que fue lo unico distinto que hice pero nada hace que funcione, curiosamente leyendo en google, lei algo de abrir puertos en el firewall asi que abri el puerto 25 y para mi sorpresa funcionó; pero dos semanas despues dejo de funcionar. No se me ocurre que más probar, si alguno ha tenido alguna situación parecida y lo pudo resolver le agradecería su ayuda.

Muchas gracias por su atención.
Responder Con Cita
  #2  
Antiguo 24-07-2015
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Tal vez no sea un problema relacionado con tu código o los componentes Indy sino que se trate del servidor SMTP. Ya sé que esto no es decir nada, pero, al menos tal vez sirva para no volvernos locos cambiando nuestro código, puesto que el problema puede no estar ahí. ¿Por qué no pruebas a establecer la propiedad "TimeOut" del componente "IdSMTP"?

Código Delphi [-]
SMTP := TIdSMTP.Create( nil );
SMTP.ReadTimeout := 30000;
// ...

Otra cosa que igual deberías hacer es actualizar los componentes Indy si no estás usando ya la última versión disponible.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 24-07-2015 a las 12:28:31.
Responder Con Cita
  #3  
Antiguo 24-07-2015
oec2509 oec2509 is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
oec2509 Va por buen camino
Muchas gracias David por tu aporte, haré lo que me sugieres y te contaré el resultado.

Saludos
Orlando.
Responder Con Cita
  #4  
Antiguo 24-07-2015
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Hola

También es probable que el puerto 25 esté bloqueado por tu ISP, algunos lo hacen por cuestiones de SPAM, intenta utilizando el puerto 587 (es el puerto alternativo para enviar correos) a ver si con ese si puedes enviarlos.

Saludos
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #5  
Antiguo 24-07-2015
oec2509 oec2509 is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
oec2509 Va por buen camino
Muchas gracias a David y a egostar por sus aportes pero en ninguno de los dos casos funciona el programa continua dando el mismo error, solo me falta probar reinstalar los componentes de INDY.

En el momento en que lo realice les contaré los resultados, gracias nuevamente por su interes y ayuda.

Saludos
Orlando.
Responder Con Cita
  #6  
Antiguo 04-09-2015
oec2509 oec2509 is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
oec2509 Va por buen camino
Buenas tardes a todos

Despues de probar muchas alternativas y mucho buscar, siguiendo la sugerencia de egostar decidi buscar algo externo y en efecto el programa no tenía absolutamente nada mal, el problema fue totalmente externo.

Al cambiar el router, algo sucedio con la configuración de servidor de DNS, los correos que envío son internos con un servidor de Exchange, entonces lo que sucedía era que el Exchange estaba tratando de enviar los correo a un dominio externo en el cual no tenía acceso ni si quiera a validar la información, de ahi el error 10060. Lo que hice fue reconfigurar el servidor de DNS y listo.

Agradezco su interes y ayuda a los que contestaron.
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
enviar correo con delphi 5 e indy 9 Espartaco Varios 5 18-12-2014 12:55:37
Enviar correo desde Delphi 7 carlos gonzalez Varios 2 06-02-2009 13:51:46
Enviar correo desde delphi 7 Lizeth Varios 4 19-09-2008 19:34:55
Enviar correo con Delphi 2007 newtron Internet 7 20-07-2008 07:52:23
Enviar correo electrónico desde delphi luisneria Internet 3 02-03-2007 18:07:27


La franja horaria es GMT +2. Ahora son las 19:59:54.


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