or
try{ OpenFileDialog fDialog = (OpenFileDialog)sender; switch (System.IO.Path.GetExtension(fDialog.FileName)) { case ".docx": docProvider = new DocxFormatProvider(); break; case ".rtf": docProvider = new RtfFormatProvider(); break; case ".txt": docProvider = new TxtFormatProvider(); break; case ".html": docProvider = new HtmlFormatProvider(); break; default: break; } using (FileStream fStream = new FileStream(fDialog.FileName, FileMode.OpenOrCreate, FileAccess.ReadWrite)) { rDoc = docProvider.Import(fStream); } rDoc.LayoutMode = DocumentLayoutMode.Paged; emailForm1.Document = rDoc;}protected void SubmitEmail(object sender, RoutedEventArgs e){ MailMessage message = new MailMessage(); byte[] emailBytes = null; string bodyText = string.Empty; SmtpClient mailServer = new SmtpClient("mail.pentegra.com"); mailServer.UseDefaultCredentials = true; this.emailForm1.Document.MailMergeDataSource.ItemsSource = mergeFields; //here's where I change the formatprovider from docx to rtf. if I use docx, the email text comes out as a bunch of symbols docProvider = new RtfFormatProvider(); //this is just a datatable with a list of emails that gets iterated through to send the emails. for (int i = 0; i < _dtMerge.Rows.Count; i++) { message = new MailMessage(); foreach (string s in lstAttachments) { message.Attachments.Add(new Attachment(s)); } message.From = _fromAddress; emailForm1.Document.MailMergeDataSource.MoveToIndex(i); emailBytes = docProvider.Export(emailForm1.Document.MailMergeCurrentRecord()); //I convert the byte array into the email body test here. StringBuilder sb = new StringBuilder(); using (StreamReader sReader = new StreamReader(mStream)) { while (!(sReader.EndOfStream)) { sb.Append(sReader.ReadLine() + Environment.NewLine); } } bodyText = sb.ToString(); message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(bodyText, null, "text/html")); message.To.Clear(); message.To.Add(new MailAddress("x@xx.com")); mailServer.Send(message); }<telerik:RadRibbonView x:Class="Magnetek.Network.Client.MainWindow" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" xmlns:ribbon="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.RibbonView" MinHeight="100" MinWidth="200" x:Name="RadRibbonWindow"> </telerik:RadRibbonView>WindowStartupLocation="CenterScreen"