示例#1
0
        public static bool Enviar(EnviarCorreo enviar)
        {
            DataTable dtMail = new DataTable();

            dtMail = ConfigCorreoLogica.ConsultarSMTP();
            if (dtMail.Rows.Count > 0)
            {
                try
                {
                    MailMessage message = new MailMessage();
                    SmtpClient  smtp    = new SmtpClient();

                    message.IsBodyHtml         = true;
                    smtp.Host                  = dtMail.Rows[0]["servidor"].ToString();
                    smtp.Port                  = Int32.Parse(dtMail.Rows[0]["puerto"].ToString());
                    smtp.DeliveryMethod        = SmtpDeliveryMethod.Network;
                    smtp.UseDefaultCredentials = false;
                    smtp.Credentials           = new NetworkCredential(dtMail.Rows[0]["usuario"].ToString(), dtMail.Rows[0]["password"].ToString());

                    if (dtMail.Rows[0]["ind_ssl"].ToString() == "1")
                    {
                        smtp.EnableSsl = true;
                    }
                    else
                    {
                        smtp.EnableSsl = false;
                    }


                    message.From = new MailAddress(dtMail.Rows[0]["correo"].ToString());

                    bool bAlerta = false;
                    long lRefer;
                    if (!long.TryParse(enviar.Referencia, out lRefer))
                    {
                        bAlerta = true;
                    }

                    if (enviar.Proceso == "A005" || enviar.Proceso == "H010" || bAlerta)
                    {
                        message.To.Add(enviar.Para);
                    }
                    else
                    {
                        DataTable dtTo = new DataTable();
                        //ORIGEN FOLIO NUMERICO [ORDEN SERVICIO]
                        if (enviar.Proceso == "H037") //Mensajes de Solicitudes
                        {
                            enviar.Proceso = "C060";
                        }

                        dtTo = ConfigDestLogica.Consultar(enviar.Proceso);
                        for (int i = 0; i <= dtTo.Rows.Count - 1; i++)
                        {
                            if (dtTo.Rows[i]["tipo"].ToString() == "T")
                            {
                                message.To.Add(dtTo.Rows[i]["correo"].ToString());
                            }
                            else
                            {
                                message.CC.Add(dtTo.Rows[i]["correo"].ToString());
                            }
                        }
                    }

                    message.Subject = enviar.Asunto;
                    string sMensaje = "";
                    if (enviar.Proceso == "A005" || enviar.Proceso == "C060" || enviar.Proceso == "H037" || bAlerta) //Mensajes en HTML
                    {
                        DataTable dtBody = CorreoLogica.BodyMail(enviar.Folio);
                        for (int i = 0; i <= dtBody.Rows.Count - 1; i++)
                        {
                            string sBody = dtBody.Rows[i]["body"].ToString();
                            sMensaje += sBody;
                        }
                        message.Body = sMensaje;
                    }
                    else
                    {
                        message.Body = enviar.Mensaje;
                    }

                    if (dtMail.Rows[0]["ind_html"].ToString() == "1")
                    {
                        message.IsBodyHtml = true;
                    }
                    else
                    {
                        message.IsBodyHtml = false;
                    }

                    smtp.Send(message);
                    message.Dispose();

                    return(true);
                }
                catch (Exception ex)
                {
                    return(false);
                }
            }
            return(false);
        }
示例#2
0
 public static int Guardar(ConfigCorreoLogica config)
 {
     string[] parametros = { "@Correo", "@Servidor", "@Puerto", "@Usuario", "@Password", "@Ssl", "@Html" };
     return(AccesoDatos.Actualizar("sp_mant_config_correo", parametros, config.Correo, config.Servidor, config.Puerto, config.Usuario, config.Password, config.Ssl, config.Html));
 }