将Word格式复制到Outlook邮件中

时间:2011-01-07 17:12:35

标签: c# outlook ms-word

我有一个前景自动化。我想使用Word文档作为消息内容的模板。假设我有一些包含表格,颜色,大小等的格式化文本。现在我想将此内容复制/粘贴到Outlook邮件对象中。

以下是一些示例代码(无需清理):

String path = @"file.docx";
String savePath = @"file.msg";
Word.Application wordApp = new Word.Application();
Word.Document currentDoc = wordApp.Documents.Open(path);
Word.Range range = currentDoc.Range(0, m_CurrentDoc.Characters.Count);
String wordText = range.Text;

oApp = new Outlook.Application();
Outlook.NameSpace ns = oApp.GetNamespace("MAPI");
ns.Logon("MailBox");
Outlook._MailItem oMsg = oApp.CreateItem(Outlook.OlItemType.olMailItem);
oMsg.To = "mymail@someserver.com";
oMsg.Body = wordtext;
oMsg.SaveAs(savePath);

使用Outlook / Word 2007,但单词文件仍然可能采用2000/2003格式(.doc) 带有.net 4.0的Visual Studio 2010(由于示例代码应该很明显)。

我习惯互操作,我知道我目前正在复制“纯文本”。我认为必须通过从word文档中转发rtf / html来完成...

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您正在阅读内容的字符串无法维护格式。您需要通过其他方法复制选择以保留格式。

您可以使用的一种技术是以html格式保存文档 - 这将添加额外的html词,往往会添加,将html内容读入字符串,即此字符串将具有生成的标签 - ,然后创建一个outlook mailItem并将body format设置为html。 - 并将正文设置为在生成的html中保存单词的html。

答案 1 :(得分:0)

Office 2007提供“MailEnvelope”功能,可用于我的目的。