Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
            }
        }
Exemplo n.º 3
0
 /// <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);
 }
Exemplo n.º 4
0
        /// <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);
        }