How to compose mail from richtext

+1 vote
asked Sep 18, 2013 by Geo Walter (140 points)
edited Sep 29, 2014

I need to compose e-mail and I have rtf-formatted text (inserted by user in our application). What I have to do to create and send Rebex.Mail.MailMessage? I read the news "Secure Mail" component contained Rtf-to-Html converter (for loading outlook messages), but I can't find any class/method/property I should use...

Applies to: Rebex Secure Mail

1 Answer

+1 vote
answered Sep 18, 2013 by Tomas Knopp (58,890 points)
edited Sep 18, 2013

You can feed the RTF text into the MailMessage class via Attachments collection like this:

byte[] rtf; // source RTF text as array of bytes

MailMessage mail = new MailMessage();

Attachment att = new Attachment();
att.Options = Rebex.Mime.MimeOptions.AllowAnyTextCharacters;

att.SetContent(new MemoryStream(rtf), "file.rtf", "application/rtf");
mail.Attachments.Add(att);

then you would have to save and reload the mail to raise Rtf to Html conversion like this:

MemoryStream ms = new MemoryStream();
mail.Save(ms);
ms.Position = 0;
mail.Load(ms);

finally you can find the converted HTML in BodyHtml property (mail.BodyHtml), so if you send the email now, it will contain the HTML version of the original RTF document you supplied which will make it possible to read the mail by most email clients.

...