我有一个消息体的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设置为从上面的函数返回的字符串.