Ver Mensaje Individual
  #1  
Antiguo 24-07-2015
oec2509 oec2509 is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Reputación: 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