public async Task <IActionResult> OnPostEnviarCorreo(string recibido) { try { InfoLiquid liq = JsonConvert.DeserializeObject <InfoLiquid>(recibido); //liq.idCierre = idCierre; //liq.emailDest = emailDest; //liq.emailCC = emailCC; //liq.body = body; await info.EnviarCorreo(liq); return(new JsonResult(true)); } catch (Exception ex) { return(new JsonResult(false)); } }
public HttpResponseMessage GetEnviarCorreo([FromBody] InfoLiquid item) { try { G.AbrirConexionAPP(out db); List <Attachment> adjuntos = new List <Attachment>(); // List<EncCompras> compras = new List<EncCompras>(); SendGridEmail.EmailSender emailsender = new SendGridEmail.EmailSender(); var parametros = db.Parametros.FirstOrDefault(); var Cierre = db.DetCierre.Where(a => a.idCierre == item.idCierre).ToList(); foreach (var det in Cierre) { var Compra = db.EncCompras.Where(a => a.id == det.idFactura).FirstOrDefault(); if (Compra.PdfFac != null) { Attachment att = new Attachment(new MemoryStream(Compra.PdfFac), Compra.PdfFactura); adjuntos.Add(att); } } var bodyH = item.body; HtmlToPdf converter = new HtmlToPdf(); // set converter options converter.Options.PdfPageSize = PdfPageSize.A4; converter.Options.PdfPageOrientation = PdfPageOrientation.Portrait; converter.Options.MarginLeft = 5; converter.Options.MarginRight = 5; // create a new pdf document converting an html string SelectPdf.PdfDocument doc = converter.ConvertHtmlString(bodyH); var bytes = doc.Save(); doc.Close(); Attachment att3 = new Attachment(new MemoryStream(bytes), "Liquidacion.pdf"); adjuntos.Add(att3); var resp = emailsender.SendV2(item.emailDest, item.emailCC, "", parametros.RecepcionEmail, "Liquidación", "Liquidación por revisar", item.body, parametros.RecepcionHostName, parametros.EnvioPort, parametros.RecepcionUseSSL.Value, parametros.RecepcionEmail, parametros.RecepcionPassword, adjuntos); if (!resp) { throw new Exception("No se ha podido enviar el correo con la liquidación"); } G.CerrarConexionAPP(db); return(Request.CreateResponse(HttpStatusCode.OK)); } catch (Exception ex) { BitacoraErrores be = new BitacoraErrores(); be.Descripcion = ex.Message; be.StackTrace = ex.StackTrace; be.Metodo = "Error de Correo"; be.Fecha = DateTime.Now; db.BitacoraErrores.Add(be); db.SaveChanges(); G.GuardarTxt("ErrorCorreo.txt", ex.Message + " -> " + ex.StackTrace); G.CerrarConexionAPP(db); return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex)); } }