/// <summary> /// Carga el archivo template desde una ruta /// </summary> /// <param name="filePathMaster">Ruta del archivo: debe tener [HTMLBODY] y [HTMLFOOTER] y usar "logo"</param> /// <param name="filePathLogo">Archivo del logo</param> public static MasterPageParameters LoadFromFile(string filePathMaster, string filePathLogo) { var result = new MasterPageParameters(File.ReadAllText(filePathMaster, Encoding.Default), filePathLogo); result.GeneerateAutoamticKeys(); return(result); }
/// <summary> /// Envía un correo electrónico con la información proporcionada /// </summary> public async Task SendMailAsync(List <string> recipient, List <string> carbonCopy, List <string> blackCarbonCopy, string subject, string htmlBodyMessage, Dictionary <string, string> imagesAppendToView, IList <string> fileNames, MasterPageParameters masterpage) { if (Convert.ToBoolean(ConfigurationManager.AppSettings["MailSendEnable"])) { var message = CreateMessage(recipient, carbonCopy, blackCarbonCopy, subject, htmlBodyMessage, imagesAppendToView, fileNames, masterpage); await Client.SendMailAsync(message); } }
/// <summary> /// Carga el template html y la imagen a utilizar como logo al momento de enviar un correo /// </summary> /// <param name="masterPageAbsolutePath">Ruta de donde cargar el template del correo</param> /// <param name="logoAbsolutePath">Ruta de donde cargar la imagen del logo del correo</param> public void SetMasterPage(string masterPageAbsolutePath, string logoAbsolutePath) { _masterpage = MasterPageParameters.LoadFromFile(masterPageAbsolutePath, logoAbsolutePath); }
/// <summary> /// Envía un correo electrónico con la información proporcionada /// </summary> public MailMessage CreateMessage(List <string> recipient, List <string> carbonCopy, List <string> blackCarbonCopy, string subject, string htmlBodyMessage, Dictionary <string, string> imagesAppendToView, IList <string> fileNames, MasterPageParameters masterpage) { var mailMessage = new MailMessage(); var resources = imagesAppendToView; if (masterpage != null && masterpage.Resources != null && masterpage.Resources.Count > 0) { if (resources == null) { resources = new Dictionary <string, string>(); } foreach (var x in masterpage.Resources) { resources.Add(x.Key, x.Value); } } var destinyListCleaned = SplitAndCleanRecipients(recipient); foreach (var destiny in destinyListCleaned) { mailMessage.To.Add(new MailAddress(destiny)); } var sestinyCarbonCopyCleande = SplitAndCleanRecipients(carbonCopy); foreach (var destiny in sestinyCarbonCopyCleande) { mailMessage.CC.Add(new MailAddress(destiny)); } var bcc = SplitAndCleanRecipients(blackCarbonCopy); foreach (var destiny in bcc) { mailMessage.Bcc.Add(new MailAddress(destiny)); } var titleinside = GetTagInfo(htmlBodyMessage, "title"); var bodyhtml = masterpage == null ? htmlBodyMessage : MergeMasterPageMail(masterpage.Masterpage, htmlBodyMessage); mailMessage.Subject = string.IsNullOrEmpty(titleinside) ? subject : titleinside; mailMessage.IsBodyHtml = true; mailMessage.Body = bodyhtml; mailMessage.From = new MailAddress(From); if (fileNames != null) { AttachFiles(mailMessage, fileNames); } if (resources != null && resources.Count > 0) { mailMessage.AlternateViews.Add(LinkedFiles(bodyhtml, resources)); } return(mailMessage); }