c# – 将Outlook.MailItem.body设置为富文本时出现异常

我有一个消息体的RichTextBox
我需要用富文本的主体创建一个新邮件.
我的代码是如何尝试实现的:

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

类型:

OutlookEMail email;
public MailItem oMsg;

问题:
使用2010年展望 – 正常运作;
使用2007 Outlook – 此代码抛出异常(AccessViolationException:尝试读取或写入受保护的内存)
有人可以建议如何使用2007 Outlook解决此问题吗?

附:使用:
Visual Studio 2010
DevExpress的

它在两台计算机上进行了测试,它们几乎相同(相同的窗口,相同的框架,只有一个具有Outlook 2007另一个2010),因此问题在于Outlook版本的80%.

解决方法:

我不确定你是否设法解决了你的问题,但我仍然坚持同样的事情.我使用DevExpress RichEditControl创建一个邮件合并的RTF文件,该文件将用作Outlook MailItem的RtfBody.但是,我得到了相同的AccessViolationException.

我的解决方法,不是最优雅的,是使用此方法将RTF转换为HTML:

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

然后将消息.BodyFormat设置为olFormatHTML并将.HTMLBody设置为从上面的函数返回的字符串.

上一篇:c# – XtraGrid中列中的唯一值列表


下一篇:DevExpress WPF v19.1:Data Grid/Tree List等控件功能增强