/// <summary> /// Obtiene los datos del servidor /// </summary> /// <param name="parametros"></param> /// <returns></returns> private ServidorSmtpInfo ObtenerInformacionServidor(IList <ConfiguracionParametrosInfo> parametros) { var servidor = new ServidorSmtpInfo(); try { foreach (var parametro in parametros) { if (parametro.Clave == ParametrosEnum.puerto.ToString()) { servidor.Puerto = parametro.Valor; } else { if (parametro.Clave == ParametrosEnum.correoOrigen.ToString()) { servidor.Cuenta = parametro.Valor; } else { if (parametro.Clave == ParametrosEnum.servidorSmtp.ToString()) { servidor.Servidor = parametro.Valor; } else { if (parametro.Clave == ParametrosEnum.autentificacion.ToString()) { servidor.Autentificacion = parametro.Valor; } else { if (parametro.Clave == ParametrosEnum.requiereSsl.ToString()) { bool requiereSsl; servidor.RequiereSsl = bool.TryParse(parametro.Valor, out requiereSsl) && requiereSsl; } } } } } } } catch (Exception) { servidor = null; } return(servidor); }
/// <summary> /// Enviar corre electronico /// </summary> /// <param name="correoAenviar"></param> /// <param name="organizacion"></param> /// <returns></returns> internal ResultadoOperacion EnviarCorreo(CorreoInfo correoAenviar, OrganizacionInfo organizacion) { var resultado = new ResultadoOperacion { Resultado = true }; try { var smtp = new SmtpClient(); var correo = new MailMessage(); var parametrosBl = new ConfiguracionParametrosBL(); var parametrosServidorSmtp = new ConfiguracionParametrosInfo { OrganizacionID = organizacion.OrganizacionID, TipoParametro = (int)TiposParametrosEnum.ConfiguracionSmtp }; IList <ConfiguracionParametrosInfo> datosServidorSmtp = parametrosBl.ObtenerPorOrganizacionTipoParametro(parametrosServidorSmtp); if (datosServidorSmtp == null) { resultado.Resultado = false; resultado.Mensaje = ResourceServices.Correo_ErrorParametrosServidor; return(resultado); } ServidorSmtpInfo servidorSmtp = ObtenerInformacionServidor(datosServidorSmtp); if (servidorSmtp == null) { resultado.Resultado = false; resultado.Mensaje = ResourceServices.Correo_ErrorParametrosServidor; return(resultado); } correo.From = new MailAddress(servidorSmtp.Cuenta, correoAenviar.NombreOrigen); if (correoAenviar.Correos == null) { resultado.Resultado = false; resultado.Mensaje = ResourceServices.Correo_SinDestinatario; return(resultado); } foreach (var destinatario in correoAenviar.Correos) { correo.To.Add(destinatario); } correo.Body = correoAenviar.Mensaje; correo.Subject = correoAenviar.Asunto; correo.SubjectEncoding = Encoding.UTF8; if (!string.IsNullOrWhiteSpace(correoAenviar.ArchivoAdjunto)) { var archivoAdjunto = new Attachment(correoAenviar.ArchivoAdjunto); correo.Attachments.Add(archivoAdjunto); } correo.BodyEncoding = Encoding.UTF8; correo.IsBodyHtml = true; correo.Priority = MailPriority.High; smtp.Host = servidorSmtp.Servidor; smtp.Port = int.Parse(servidorSmtp.Puerto); smtp.EnableSsl = servidorSmtp.RequiereSsl; smtp.Credentials = new NetworkCredential(servidorSmtp.Cuenta, servidorSmtp.Autentificacion); smtp.Send(correo); } catch (Exception ex) { Logger.Error(ex); throw; } return(resultado); }