Exemplo n.º 1
0
        public static void Correo(string uuid, string url, int id)//Metodo encargado del envio de correo electronico
        {
            BD.Open();
            List <string> datos = BD.SeleccionDatos(id);//Llamada al metodo que contiene los datos de la factura, seran añadidos a la estructrua html enviada por correo electronico

            MailMessage mail = new MailMessage
            {
                From = new MailAddress("*****@*****.**")//Correo electronico del remitente
            };

            mail.To.Add(new MailAddress(datos[48]));//Correo electronico del destinatario

            //Asunto del correo electronico
            mail.Subject = "Factura";
            //Cuerpo del correo electronico, contiene el enlace para la descarga de la factura y una vista previa de la misma
            string body =
                @"
        <!DOCTYPE html>
        <html>
        <head>
        <meta name='viewport' content='width=device-width, initial-scale=1.0'>
        <style>
        * {
            box-sizing: border-box;
        }
        .menu {
            float: left;
            width: 20%;
        }
        .menuitem {
            padding: 8px;
            margin-top: 7px;
            border-bottom: 1px solid #f1f1f1;
        }
        .main {
            float: left;
            width: 60%;
            padding: 0 20px;
            overflow: hidden;
        }
        .right {
            background-color: lightblue;
            float: left;
            width: 20%;
            padding: 10px 15px;
            margin-top: 7px;
        }

        @media only screen and (max-width:800px) {
            /* For tablets: */
            .main {
            width: 80%;
            padding: 0;
            }
            .right {
            width: 100%;
            }
        }
        @media only screen and (max-width:500px) {
            /* For mobile phones: */
            .menu, .main, .right {
            width: 100%;
            }
        }

        h5 {text-align: center;}

        table tr {
            text-align: left;
	        }

        h3 {margin-left: 12%;}


        table {
            border-collapse: collapse;
  
 
        }

        th, td {
            padding: 8px;
            text-align: left;
            border-bottom: 2px solid #ffffff;
        }


        p.nueva{
            text-align: center;
            font-weight: bold;
            font-size:25px;
            color:#49F9BC;
            }

        </style>
        </head>
        <body style='font-family:Verdana;'>

        <div style='background-color:#C2FBE7;padding:0px;'>
            <center>
            <img src='http://www.cfenergia.com/img/logotipo.png' width='210' height='70'>
            </center>
        </div>

        <h5>Comercializamos Gas Natural, Gas natural licuado, combustibles líquidos y carbón dentro del territorio de México. </h4>  



            <p class='nueva'>
            <img src='https://portalacademico.cch.unam.mx/repositorio-de-sitios/matematicas/estadistica-probabilidad-1/Estadistica/img/manita.jpg' style='width:30px; height:30px'>  ¡Ha recibido una nueva factura.!  </p>


            <h3> Estimado (a).      " + datos[19] + @"     , ya puedes consultar tu nueva factura.  </h3>
    
            <h3> Resumen... </h3>
  
        <center>
            <table bgcolor='#D2F9FC'   width='75%'>
            <tr>
                <th rowspan='2'> Enviada a </th>
                <td> " + datos[19] + @" </ td >
            </tr>
            <tr>
                <td> " + datos[48] + @" </td>
            </tr>

            <tr>
                <th rowspan='2'> Enviada por</th>
                <td> " + datos[16] + @" </ td >
            </tr>
            <tr>
                <td>  " + datos[49] + @"</td>
            </tr>

            <tr>
                <th>Numero de factura</th>
                <td>" + datos[0] + @"</td>
            </tr>

            <tr>
                <th>Fecha de emision</th>
                <td>" + datos[3] + @"</td>
            </tr>

            <tr>
                <th>Importe</th>
                <td>$" + datos[40] + @"</td>
            </tr>
            </table> 
            </center> 

        <br>



            <center>
            <a href=' " + url + @"  ' style='font-size:16px;color:#ffffff;text-decoration:none;border-radius:2px;background-color:#ec5252;border-top:12px solid #ec5252;border-bottom:12px solid #ec5252;border-right:18px solid #ec5252;border-left:18px solid #ec5252;display:inline-block' target='_blank' data-saferedirecturl=''>
                        Ver Factura
            </a>
        </center> 

        <center>
            <h5>¡Gracias por utilizar nuestro servicio de facturacion electronica! </h5>     
        <center>

        <div style='background-color:#C2FBE7;padding:25px;'>
        </div>

        </body>
        </html>
            ";
            string html = uuid + url;

            AlternateView plainView = AlternateView.CreateAlternateViewFromString(html, Encoding.UTF8, MediaTypeNames.Text.Plain);

            AlternateView htmlView = AlternateView.CreateAlternateViewFromString(body, Encoding.UTF8, MediaTypeNames.Text.Html);

            mail.AlternateViews.Add(plainView);
            mail.AlternateViews.Add(htmlView);

            SmtpClient client = new SmtpClient
            {
                Credentials = new System.Net.NetworkCredential("*****@*****.**", "unodos12"),
                Port        = 587,
                Host        = "smtp-mail.outlook.com",
                EnableSsl   = true //Esto es para que vaya a través de SSL que es obligatorio con GMail
            };

            try
            {
                if (uuid == null || url == null)//En caso de que el timbrado no se realizara correctamente no se enviara el correo y los estados se pondran en 0

                {
                    BD.Open();
                    BD.Actualizar(id, 0, 0);
                    Scheduler cc = new Scheduler();
                    cc.Start();
                    //MessageBox.Show("El timbrado no fue genearo");
                }
                else//Comprobacion de timbrado en caso de ser exitoso sera enviado al cliente y los estados de envio seran cambiados a 1
                {
                    int estado_correo   = 1;
                    int estado_timbrado = 1;
                    BD.Open();
                    BD.Actualizar(id, estado_timbrado, estado_correo);//Llama al metodo Actualizar para cambiar el estado de envio y facturacion
                    //bd.actualizar escada (id, no_cliente,bandera_scada)
                    client.Send(mail);
                }
            }
            catch (System.Net.Mail.SmtpException ex)
            {
                Console.WriteLine(ex.Message);
                Console.ReadLine();
            }
        }