none
Error al enviar correo.

    Pregunta

  • Hola a todos.

    Estoy realizando una aplicación de Windows Forms en la cual se debe mandar un correo. Con el código que abajo se muestra el correo se envia sin problemas, cabe aclarar que antes se hacia uso de un Exchange 2003. Posteriormente se realizo un cambio a Exchange 2007 y el código dejo de funcionar.

    Dim cliente As New SmtpClient("NombreServidor")
    Dim de As New MailAddress(correo@dominio.com)
    Dim para As New MailAddress(correo@dominio.com)
    Dim mensaje As New MailMessage(de, para)
    mensaje.IsBodyHtml = True
    mensaje.Subject = "Env¡o archivo."
    
    mensaje.Body = "<html><body><b>El archivo:" & NombreArchivo & " se ha transmitido de forma correcta, el tama¤o del archivo transmitido es de: " & Tam & "!!</b><br>Estado de la transmisi¢n:</body></html>"
    
    cliente.Send(mensaje)
    

     

    La excepción que se lanza dice: No es posible conectar con el servidor remoto. Se produjo un error durante el intento de conexión ya que la parte conectada no respondió adecuadamente tras un periodo de tiempo, o bien se produjo un error en la conexión establecida ya que el host conectado no ha podido responder x.x.x.x:25 (dirección IP con puerto).

    Considero que es mas algo de configuración del lado del Exchange 2007 que algo relacionado con el código porque como les mencione cuando se tenia el Exchange 2003 el correo salia sin problemas.

    Agradezco a todos por mantener esta comunidad tan importante.

    viernes, 26 de marzo de 2010 23:35

Respuestas

  • Hola

    Puede deberse a que tu servidor exchange este configurado para usar SSL, conexión segura? Si es así lo más probable es que no esté usando el puerto 25, deberias tenerlo en cuenta, Si es así lo normal es que el puerto de envio sea el 443 puedes ajustarlo así:

            cliente.EnableSsl = True
            cliente.Port = 443

    También puede ocurrir que necesites especificar tus credenciales de usuario del dominio para poder enviar correo a traves del servidor exchange:

            cliente.UseDefaultCredentials = True
            cliente.Credentials = New System.Net.NetworkCredential("user", "pass", "domain")

    Estas partes de código ponlas justo despues de crear el objeto cliente.

    Espero que te funcione, un gran saludo!


    MCTS .NET Framework 3.5 Windows Forms Application Development
    sábado, 27 de marzo de 2010 0:28