none
Correo Electrónico se demora en llegar al Destino

    Pregunta

  • Tengo un problema en el envío de correo electrónico, he probado en varios proyectos; en un proyecto con visual studio 2008 fue suficiente con agregar este codigo ServicePointManager.ServerCertificateValidationCallback = (s, certificate, chain, ssl_policy_errors) => true antes de enviar y el correo llega casi inmediatamente al destino; en otro proyecto con visual studio 2010 tampoco tengo inconvenientes; pero en un tercer proyecto con el mismo código el correo demora 20 minutos en llegar al destino.

    Realmente no se cual es el problema que tengo

    Agradezco mucho por su ayuda.

    try
                {
                    var correo = new MailMessage
                    {
                        IsBodyHtml = true,
                        From =
                            new MailAddress(str_usuario_smtp, str_nombre_correo_externo)
                    };

                    correo.To.Add(str_correo);
                    correo.Subject = str_asunto;
                    var html = AlternateView.CreateAlternateViewFromString(str_html,
                        new ContentType("text/html"));
                    //para imagenes embebidas
                    LinkedResource lnr_cabecera = new LinkedResource(str_ruta_server + "imagen/cabecera.jpg");
                    lnr_cabecera.ContentId = "cabecera";

                    LinkedResource lnr_pie = new LinkedResource(str_ruta_server + "imagen/pie.jpg");
                    lnr_pie.ContentId = "pie";

                    html.LinkedResources.Add(lnr_cabecera);
                    html.LinkedResources.Add(lnr_pie);
                    correo.AlternateViews.Add(html);
                    correo.Priority = MailPriority.Normal;

                    var smtp =
                        new SmtpClient(str_servidor_smtp)
                        {
                            Credentials =
                                new NetworkCredential(
                                    str_usuario_smtp,
                                    str_password_smtp)
                        };
                    smtp.Port = Convert.ToInt32(str_puerto_smtp);
                    smtp.EnableSsl = bln_certificado_ssl;
                    if (bln_certificado_ssl)
                    {
                        ServicePointManager.ServerCertificateValidationCallback =
                        (s, certificate, chain, ssl_policy_errors) => true;
                    }
                    smtp.Send(correo);
                    return true;
                }
                catch (Exception ex)
                {
                    return false;
                }

    sábado, 22 de noviembre de 2014 15:07

Respuestas

  • hola

    el que se demore el envio del mail no creo que tenga que ver con tu codigo, sino con el servidor

    si envias un mail desde un cliente de mail comun no se produce la misma demora ?

    el uso del ServerCertificateValidationCallback  no tiene nada que ver con el smtp, este se usa para servicios web cuando requieren aceptar certificados

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    sábado, 22 de noviembre de 2014 17:55