public void ReplaceHtml(IMimePartReplacer replacer, IDataContext context)
 {
     if (mailMessage.Html != null)
     {
         mailMessage.Html.Strings = ReplaceStrings(mailMessage.Html.Strings, replacer, context);
     }
 }
        public void ReplaceTextAttachment(IMimePartReplacer replacer, IDataContext context)
        {
            foreach (var attachment in attachments)
            {
                if (attachment.Key.ContentType.IndexOf("text/") == 0)
                {
                    var encoding = Translator.GetEncoding(GetAttachmentCharSet(attachment.Key));

                    string content;

                    using (var reader = new StreamReader(attachment.Value, encoding, false, 8192, true))
                    {
                        content = reader.ReadToEnd();
                    }

                    content = replacer.Replace(content, context);

                    attachment.Value.SetLength(0);

                    using (var writer = new StreamWriter(attachment.Value, encoding, 8192, true))
                    {
                        writer.Write(content);
                    }

                    attachment.Value.Position = 0;
                }
            }
        }
 public void ReplaceText(IMimePartReplacer replacer, IDataContext context)
 {
     if (mailMessage.Text != null)
     {
         mailMessage.Text.Strings = ReplaceStrings(mailMessage.Text.Strings, replacer, context);
     }
 }
        private string[] ReplaceStrings(string[] source, IMimePartReplacer replacer, IDataContext context)
        {
            if (source == null)
            {
                return(null);
            }

            var s = string.Join("\r\n", source);

            s = replacer.Replace(s, context);
            return(s.Split(new string[] { "\r\n" }, StringSplitOptions.None));
        }
 public void ReplaceHeader(IMimePartReplacer replacer, IDataContext context)
 {
     mailMessage.From.FullAddress       = replacer.Replace(mailMessage.From.FullAddress, context);
     mailMessage.ToList.EmailAddresses  = replacer.Replace(mailMessage.ToList.EmailAddresses, context);
     mailMessage.CcList.EmailAddresses  = replacer.Replace(mailMessage.CcList.EmailAddresses, context);
     mailMessage.BccList.EmailAddresses = replacer.Replace(mailMessage.BccList.EmailAddresses, context);
     mailMessage.Subject       = replacer.Replace(mailMessage.Subject, context);
     mailMessage.ReplyTo       = replacer.Replace(mailMessage.ReplyTo, context);
     mailMessage.ReadReceiptTo = replacer.Replace(mailMessage.ReadReceiptTo, context);
     mailMessage.NewsGroups    = ReplaceStrings(mailMessage.NewsGroups, replacer, context);
     mailMessage.References    = ReplaceStrings(mailMessage.References, replacer, context);
     mailMessage.ExtraFields   = ReplaceStrings(mailMessage.ExtraFields, replacer, context);
 }