none
El certificado remoto no es válido según el procedimiento de validación

    Pregunta

  • Buenas a todos, ya estuve leyendo y no pude enviar un mail,creo que tengo todo correctamente pero por el error que me devuelve creo que hay algo mas que se me esta escapando. Mi codigo es el siguiente:

     

      Dim correo As New MailMessage()
    
     correo.To.Add("AudioVisual@arq.unne.edu.ar")
     correo.To.Add("adminsgd@arq.unne.edu.ar")
     correo.To.Add("sgd@gmail.com")
     correo.SubjectEncoding = System.Text.Encoding.UTF8
     correo.From = New MailAddress("sgd@gmail.com", "SGD")
     correo.Subject = "Pedido de Equipos"
     correo.Body = " Buen dia, por medio de este meil, nos permitimos enviarles el reporte de la sucursal "
     
     Dim smtp As New Net.Mail.SmtpClient("arq.unne.edu.ar", 25)
     smtp.Credentials = New System.Net.NetworkCredential("admin@arq.unne.edu.ar", "Matias")
     smtp.EnableSsl = True
     smtp.Send(correo)
    

     

     

    el error que me tira la pagina es la siguiente:

    El certificado remoto no es válido según el procedimiento de validación.

    Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código. 

    Detalles de la excepción: System.Security.Authentication.AuthenticationException: El certificado remoto no es válido según el procedimiento de validación.

    Error de código fuente: 

    Se ha generado una excepción no controlada durante la ejecución de la solicitud Web actual. La información sobre el origen y la ubicación de la excepción pueden identificarse utilizando la excepción del seguimiento de la pila siguiente.

    Seguimiento de la pila: 

    [AuthenticationException: El certificado remoto no es válido según el procedimiento de validación.]
     System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception) +1753115
     System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) +6081245
     System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) +137
     System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) +53
     System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) +120
     System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) +85
     System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) +61
     System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) +137
     System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) +53
     System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) +120
     System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) +85
     System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) +61
     System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) +137
     System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) +53
     System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) +120
     System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) +85
     System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) +61
     System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) +137
     System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) +53
     System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) +120
     System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) +85
     System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) +61
     System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) +137
     System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) +53
     System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) +120
     System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) +85
     System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) +61
     System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) +137
     System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) +143
     System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) +99
     System.Net.TlsStream.CallProcessAuthentication(Object state) +47
     System.Threading.ExecutionContext.runTryCode(Object userData) +80
     System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) +0
     System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) +105
     System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) +125
     System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) +43
     System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result) +798
     System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size) +58
     System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size) +26
     System.Net.Mail.SmtpConnection.Flush() +30
     System.Net.Mail.ReadLinesCommand.Send(SmtpConnection conn) +14
     System.Net.Mail.EHelloCommand.Send(SmtpConnection conn, String domain) +19
     System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint) +1040
     System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint) +170
     System.Net.Mail.SmtpClient.GetConnection() +50
     System.Net.Mail.SmtpClient.Send(MailMessage message) +1757
     SGD.Sitio.audioVisualesPage.idEnviar_Click(Object sender, EventArgs e) +962
     System.Web.UI.WebControls.Button.OnClick(EventArgs e) +118
     System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +112
     System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
     System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
     System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
     System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563

     

     

     

    Alguna ayudita?



    • Editado NioDeTark martes, 17 de mayo de 2011 21:31 corregir el titulo
    lunes, 16 de mayo de 2011 21:45

Respuestas

  • Hola a los dos, he encontrado la solucion, y a travez de google, pero de una manera curiosa la solucion esta en el siguiente  hilo , pero lo curioso es que no esta en el hilo en si sino en un comentario hecho por alguno de los visitantes. en definitiva la solucion es la siguiente (cortado y pegado del comentario de Alberto Gaona):

     

     

    Para los que tienen problemas con el certificado remoto (p.e. "El certificado remoto no es válido según el procedimiento de validación"):

    Tiene que decirle a la conexión hacia el servidor que NO les interesa verificar el contenido del certificado de gmail. Para ello, inserten las siguientes líneas ANTES de la llamada al send():

               ServicePointManager.ServerCertificateValidationCallback =

                   delegate(object s

                       , X509Certificate certificate

                       , X509Chain chain

                       , SslPolicyErrors sslPolicyErrors)

                   { return true; };

     

    en Visual Basic seria:

       ServicePointManager.ServerCertificateValidationCallback = Function(s As Object, certificate As X509Certificate, chain As X509Chain, sslPolicyErrors As SslPolicyErrors) True

    que hay que insertar antes de poner el smtp.send, y ademas importar algunas librerias.
    Imports System.Net.Security
    Imports System.Security.Cryptography.X509Certificates
    PD: tambien te encontre en ese hilo Jose, je :-)
    • Marcado como respuesta NioDeTark martes, 17 de mayo de 2011 21:30
    martes, 17 de mayo de 2011 21:30

Todas las respuestas

  • hola

    estas segurio que en

    smtp.Credentials = New System.Net.NetworkCredential(...

    le pasas la info de forma correcta ?

    recuerda que alli se debe poner el usuario y password que usa la persona del mail que envia para autenticarse

    segun lo que muestras pones el mail y un nombre, pero no se si eso es correcto, consulta con alguien que administre el servidor de smtp con que usuario y password envia mail, o como configura si cliente de correo habitual

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 16 de mayo de 2011 23:17
  • Hola Guacharaca

    Cuando colocas:

       correo.From = New MailAddress("Matiasclemente@gmail.com", "SGD")
    y luego colocas
         Dim smtp As New Net.Mail.SmtpClient("arq.unne.edu.ar", 25)
    
        smtp.Credentials = New System.Net.NetworkCredential("SGDadmin@arq.unne.edu.ar", "Matias")
        smtp.EnableSsl = True



    Bueno tema de configuracion... 
    Si estas enviando un email a traves de un SMTP seguro (con SSL habilitado) generalmente es el puerto 25 sino otro.. VERIFICA CON TU ADMINISTRADOR si los parametros de configuracion para ese servidor SMTP es correcto.
    Cuentanos comoconfiguras el Outlook (o tu cliente de correo) para enviar desde esa cuenta y te podremos ayudar mejor... Y si no configuraste el Outlook, prueba configurandolo para enviar correo y asi vemos (si no es el Outlook, Prueba el Express o el Windows Mail o el cliente que quieras de correo) 


    NOTA 1: Estas enviando por un servidor con otra cuenta. Bueno no importa ahora... pero depende de como esta configurado el servidor SMTP puede darse que no puedas enviar desde otra casilla que no sea la del propio dominio

    NOTA 2: Si eres el del email de FROM, trata de no escribir email en los foros publicos porque siempre hay spider para obtener email validos como SPAM ;)


    Espero que te sirva de ayuda o guia.


    Jose. A Fernandez | blog: http://geeks.ms/blogs/fernandezja
    martes, 17 de mayo de 2011 15:15
  • Primero que nada gracias por su tiempo. Bueno, les respondo:

    Leandro: corregi o intente corregir pero me sigue tirando el mismo error.

    Jose: lo del los correos distintos fue porque quedo mal cuando pegue el codigo aqui, ya que quise limpiarlo un poco, y bue... se me paso. Por otro lado, sobre lo de los SPAM, ya edite el msj y lo corregi! ;) gracias por la data.

    Ya he hablado con el administrador del servicio y me dijo que el puerto es ese, el 25.

    En el outlook express veo que tiene una tilde puesta en "mi servidora requiere autenticacion", y dentro de configuracion Pide el usuario y contraseña que ese outlook usa, pero ademas esta destildado una casilla que dice: "iniciar sesión usando autenticación de contraseña segura".

    Lo que me llama la atencion, es que puse la instruccion  smtp.send(correo) dentro de un blque try catch, pero el bloque no captura el error, sino que directamente me tira el error que antes pegue... 

     

    Asi que sin mas que decir, espero que puedan tirarme alguna ayudita!


     

    martes, 17 de mayo de 2011 21:01
  • Hola a los dos, he encontrado la solucion, y a travez de google, pero de una manera curiosa la solucion esta en el siguiente  hilo , pero lo curioso es que no esta en el hilo en si sino en un comentario hecho por alguno de los visitantes. en definitiva la solucion es la siguiente (cortado y pegado del comentario de Alberto Gaona):

     

     

    Para los que tienen problemas con el certificado remoto (p.e. "El certificado remoto no es válido según el procedimiento de validación"):

    Tiene que decirle a la conexión hacia el servidor que NO les interesa verificar el contenido del certificado de gmail. Para ello, inserten las siguientes líneas ANTES de la llamada al send():

               ServicePointManager.ServerCertificateValidationCallback =

                   delegate(object s

                       , X509Certificate certificate

                       , X509Chain chain

                       , SslPolicyErrors sslPolicyErrors)

                   { return true; };

     

    en Visual Basic seria:

       ServicePointManager.ServerCertificateValidationCallback = Function(s As Object, certificate As X509Certificate, chain As X509Chain, sslPolicyErrors As SslPolicyErrors) True

    que hay que insertar antes de poner el smtp.send, y ademas importar algunas librerias.
    Imports System.Net.Security
    Imports System.Security.Cryptography.X509Certificates
    PD: tambien te encontre en ese hilo Jose, je :-)
    • Marcado como respuesta NioDeTark martes, 17 de mayo de 2011 21:30
    martes, 17 de mayo de 2011 21:30
  • Gracias por compartir la respuesta. Asi todos nos seguimos aprendiendo.

    Saludos


    Jose. A Fernandez | blog: http://geeks.ms/blogs/fernandezja
    miércoles, 18 de mayo de 2011 12:40
  • Hola,

     

    Excelente, algo mas para nuestras bibliotecas digitales.

     

    Saludos,



    Jason Ulloa
    Mi Blog San José, Costa Rica
    miércoles, 18 de mayo de 2011 12:44
  • Amigo, estoy desarrollando en Visual Studio 2005, me sigue saliendo el mismo error y al colocar:

    ServicePointManager.ServerCertificateValidationCallback = Function(s As Object, certificate As X509Certificate, chain As X509Chain, sslPolicyErrors As SslPolicyErrors) True

    Function no lo reconoce,

    Por favor me puedes ayudar?  ... GRACIAS

    jueves, 17 de noviembre de 2011 20:14
  • Hola, yo soy bastante novato como para responder, pero observaste que dice Delegate en vez de Function?

     

    quizas por eso no reconoce :S

    lunes, 21 de noviembre de 2011 23:11
  •        Muy Buena aportación, me ayudo en mucho!!! 

    tengo código en c# con mvc3 para adjuntar pdf o xml saludos......

    • Propuesto como respuesta txietxi martes, 17 de julio de 2012 8:57
    • Votado como útil txietxi martes, 17 de julio de 2012 8:57
    martes, 13 de marzo de 2012 19:33
  • A mi me marcaba error después de esto y solo agregue la librería System.Net y listo funcionó. Las librerias que tengo al inicio son:

    Imports System.Net.Mail

    Imports System.Net.Security

    Imports System.Security.Cryptography.X509Certificates
    Imports System.Net

    El puerto que uso es el 2626, sin necesidad de habilitar SSL.

    jueves, 22 de marzo de 2012 6:25
  • Alguien que me ayude el codigo como seria para c#.net . a mi no me reconoce el codigo , y ya puse todas las librerias necesarias .-.
    miércoles, 16 de abril de 2014 4:10