Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

exception in setting Outlook.MailItem.body as rich text

I have a RichTextBox for the Message Body and I need to create a new mail with the body of rich Text. There is my code how i tried to realize that:

MemoryStream ms = new MemoryStream();
MemoEditBody.SaveDocument(ms, DevExpress.XtraRichEdit.DocumentFormat.Rtf);
byte[] RTFBody = ms.ToArray();
email.oMsg.RTFBody = RTFBody;                                

Types:

OutlookEMail email;
public MailItem oMsg;

Problem: Working with 2010 Outlook - works properly; Working with 2007 Outlook -this code throws exception (AccessViolationException: Attempted to read or write protected memory) Can someone suggest how to resolve this problem with 2007 Outlook?

P.S. Using : Visual studio 2010 DevExpress

It was tested on two computers, they are almost identical (same windows, same framework, only one has Outlook 2007 another 2010) so it is 80% that problem is in Outlook version.

like image 336
Edgar Avatar asked Jul 12 '12 08:07

Edgar


1 Answers

I'm not sure if you managed to solve your problem but I was stuck with the same thing. I was using the DevExpress RichEditControl to create a mail merged RTF file which would be used as the RtfBody of an Outlook MailItem. However, I was getting the same AccessViolationException.

My workaround, which is not the most elegant, was to convert the RTF to HTML using this method:

http://www.codeproject.com/Articles/51879/Converting-RTF-to-HTML-in-VB-NET-the-Easy-Way

Then just set the message .BodyFormat to olFormatHTML and set the .HTMLBody to the string returned from the function above.

like image 92
Foub Avatar answered Oct 12 '22 23:10

Foub