public MailObject SP_ObtieneMailConfig() { MailObject MO = new MailObject(); List <string> Documents = new List <string>(); try { using (SqlConnection con = new SqlConnection(BDCon)) { using (SqlCommand cmd = new SqlCommand("[Fact].[c]", con)) { SqlDataReader dr; cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@RucEmpresa", ""); con.Open(); dr = cmd.ExecuteReader(); if (dr.Read()) { MO.RUC = dr[0].ToString().Trim(); MO.EMAIL = dr[1].ToString().Trim(); MO.PASSWORD = dr[2].ToString().Trim(); MO.DOMAIN = dr[3].ToString().Trim(); MO.IP = dr[4].ToString().Trim(); MO.PORT = dr[5].ToString().Trim(); MO.USESSL = dr[6].ToString().Trim(); MO.MAILNOTIF = dr[7].ToString().Trim(); con.Close(); return(MO); } con.Close(); } } } catch (SqlException ex) { } return(MO); }
static void Main(string[] args) { string html = ""; MS.validateConnectionString(); if (args.Length == 0) { ServiceName = ""; } else { ServiceName = args[0]; } Log LOG = new Log(MS); LOG.Builder("==============================================="); LOG.Builder("PROCESO DE NOTIFICACIÓN DE ERROR EN SERVICIOS"); LOG.Builder("Obteniendo correos de destino de Base de Datos"); Encrypter EC = new Encrypter(); try { MailObject MO = new MailObject(); MO = MS.SP_ObtieneMailConfig(); if (MO.EMAIL == "" || MO.PASSWORD == "" || MO.DOMAIN == "" || MO.PORT == "") { LOG.Builder("No se ha configurado correctamente el correo de envío."); goto Final; } if (MO.MAILNOTIF == "") { LOG.Builder("No se han configurado los correos de destino para la notificación."); goto Final; } MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpClient(MO.DOMAIN); mail.From = new MailAddress(MO.EMAIL); //mail.To.Add(MO.MAILNOTIF); LOG.Builder("Se enviará a los siguientes correos: " + MO.MAILNOTIF); foreach (var address in MO.MAILNOTIF.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries)) { mail.To.Add(address); } mail.Subject = "[SLIN-ADE] Servicio Detenido el " + DateTime.Now.ToString("dd-MM-yyyy"); html = "Se ha detenido el Servicio " + ServiceName + " luego de 2 intentos, en caso siga teniendo problemas por favor comunicar a [email protected]"; mail.Body = html; mail.IsBodyHtml = false; SmtpServer.Port = int.Parse(MO.PORT); SmtpServer.Credentials = new System.Net.NetworkCredential(MO.EMAIL, EC.DecryptKey(MO.PASSWORD)); if (MO.USESSL == "1") { SmtpServer.EnableSsl = true; } SmtpServer.Send(mail); } catch (SmtpException e) { LOG.Builder(e.Message + " - " + e.InnerException.Message); } catch (Exception e) { LOG.Builder("Error al enviar Correo: " + e.Message); } Final: LOG.Builder("==============================================="); LOG.RegistraLog(""); }