我正在使用Outlook和C#,我的学校练习是在不使用额外软件的情况下以pdf格式转换电子邮件正文。在我的情况下,我想保留电子邮件文本格式以解决我的问题我已经考虑转换RTF文件中的电子邮件正文,然后通过C#使用Word应用程序打开此RTF文件并将其另存为PDF。
我想知道如何从MailItem获取RTF文件。我在网上发现可以使用BodyFormat属性转换RTF格式的MailItem主体,但我不知道如何创建RTF。
答案 0 :(得分:4)
@JoshH提供的答案很好。事实上它帮助了我,但唯一的事情是它不包括电子邮件正文中存在的嵌入文件,如图像。 如果要这样做,请将正文格式设置为HTML而不是“FormatRichText”:
MailItem.BodyFormat = OlBodyFormat.olFormatHTML;
MailItem.SaveAs("FilePath", OlSaveAsType.olRTF)
话虽如此,我提供的代码不包括对电子邮件本身的附件,即不在正文中。
我希望这有助于某人。
答案 1 :(得分:1)
应该如此简单:
MailItem.BodyFormat = OlBodyFormat.olFormatRichText;
MailItem.SaveAs("FilePath", OlSaveAsType.olRTF)
MailItem.BodyFormat属性:
http://msdn.microsoft.com/en-us/library/office/ff869979(v=office.15).aspx
MailItem.SaveAs方法:
http://msdn.microsoft.com/en-us/library/office/ff868727(v=office.15).aspx
答案 2 :(得分:1)
您可以不将文件另存为rtf格式。
Outlook.MailItem mi = selection[1] as Outlook.MailItem;
mi.BodyFormat = Outlook.OlBodyFormat.olFormatRichText;
string fullPath = Path.Combine("SaveLocation", mi.Subject + ".pdf");
//mi.SaveAs(fullPath, Outlook.OlSaveAsType.olRTF);
Word.Document doc = mi.GetInspector.WordEditor;
doc.SaveAs2(fullPath, FileFormat: Word.WdSaveFormat.wdFormatPDF);
使用Word = Microsoft.Office.Interop.Word;在标题