private MimeKit.MimeMessage notifEmail(JGA_PROYECCION proyeccion, JGA_PGS_ENT suplidor, List<JGA_PGS_CXE> contactosSup, JGA_PGS_ENT embarcador, List<JGA_PGS_CXE> contactosEmb, JGA_PGS_USR usuario) { JGA_PGS_PTOS puertoDest = db.JGA_PGS_PTOS.SingleOrDefault(x => x.PTOS_CODPTO == proyeccion.PROY_PTOIN); var message = new MimeMessage(); message.From.Add(new MailboxAddress(usuario.USR_NAME, usuario.USR_EMAIL)); message.To.Add(new MailboxAddress(suplidor.ENT_NOMBRE, suplidor.ENT_MAIL1)); if (suplidor.ENT_MAIL2 != null) { message.To.Add(new MailboxAddress(suplidor.ENT_NOMBRE, suplidor.ENT_MAIL2)); } if (contactosSup.Count > 0) { foreach (var item in contactosSup) { message.To.Add(new MailboxAddress(item.CXE_nombre, item.CXE_email1)); if (item.CXE_email2 != null) { message.To.Add(new MailboxAddress(item.CXE_nombre, item.CXE_email2)); } } } message.Cc.Add(new MailboxAddress(embarcador.ENT_NOMBRE, embarcador.ENT_MAIL1)); if (embarcador.ENT_MAIL2 != null) { message.Cc.Add(new MailboxAddress(embarcador.ENT_NOMBRE, embarcador.ENT_MAIL2)); } if (contactosEmb.Count > 0) { foreach (var item in contactosEmb) { message.Cc.Add(new MailboxAddress(item.CXE_nombre, item.CXE_email1)); if (item.CXE_email2 != null) { message.Cc.Add(new MailboxAddress(item.CXE_nombre, item.CXE_email2)); } } } //Asunto del correo message.Subject = "Llegada de contenedor a planta " + suplidor.ENT_NOMBRE + " / " + proyeccion.JGA_BKG_SOL.JGA_PGS_NAV.NAV_NOMBRE + " - " + proyeccion.JGA_BKG_SOL.JGA_PGS_NAV.JGA_PGS_DEST.SingleOrDefault(x => x.DEST_IDDEST == proyeccion.JGA_BKG_SOL.SOL_DEST).DEST_DESCRIP + " " + proyeccion.JGA_BKG_SOL.SOL_SEMANA; //acá creamos una variable para la contrucción del email. var builder = new BodyBuilder(); //Correo en texto plano builder.TextBody = @""; //correo en HTML builder.HtmlBody = @"<div> <p>Buenos días.<br />Estos son los datos del contenedor que estará llegando el día " + proyeccion.PROY_FECCOLOCACION + " a planta.</p>"+ "<h3>"+proyeccion.PROY_CONSEC+"</h3>"+ "<table border='3' style='border-color:black; width:80%; text-align:center;'>"+ "<thead>"+ "<tr style='background-color:blue; color: white;'>"+ "<td class='header'>Contenedor</td>"+ "<td class='header'>Marchamo</td>"+ "<td class='header'>Barco</td>"+ "<td class='header'>Puerto destino</td>"+ "<td class='header'>Naviera</td>"+ "</tr>"+ "</thead>"+ "<tbody>"+ "<tr>"+ "<td>" + proyeccion.PROY_CONTENEDOR+"</td>"+ "<td>"+proyeccion.PROY_MARCHAMO+"</td>" +"<td>"+proyeccion.PROY_BARCO+"</td>"+ "<td>"+puertoDest.PTOS_NOMBRE+"</td>"+ "<td>"+proyeccion.JGA_BKG_SOL.JGA_PGS_NAV.NAV_NOMBRE+"</td>"+ "</tr>"+ "</tbody>"+ "</table><br />"+ "<p>Por favor confirmar recibido.<br />Saludos.</p>"+ "</div>"; message.Body = builder.ToMessageBody(); return message; }
private void MessageNotif(JGA_PROYECCION proyeccion, JGA_PGS_ENT suplidor, List<JGA_PGS_CXE> contactosSup, JGA_PGS_ENT embarcador, List<JGA_PGS_CXE> contactosEmb, JGA_PGS_USR usuario) { //Se envía al método notifEmail las listas de los emails de los destinatarios. var message = (MimeMessage)notifEmail(proyeccion, suplidor, contactosSup, embarcador, contactosEmb, usuario); var stream = new MemoryStream(); message.WriteTo(stream); //acá seteamos las credenciales que nos provee AWS para el envío de correos electrónicos. AWSCredentials credentials = new BasicAWSCredentials("AKIAI5LCJ5RFIUB4NJUQ", "XTRtXuW+mxYg2nZOtc7MnErmwJFRD5kgAKCPjmjU"); //seteamos una variable con las credenciales y la zona que tenemos de AWS. using (var client = AWSClientFactory.CreateAmazonSimpleEmailServiceClient(credentials, RegionEndpoint.USEast1)) { var request = new SendRawEmailRequest { RawMessage = new RawMessage { Data = stream } }; //acá ejecutamos el envio del correo. var response = client.SendRawEmail(request); } }