我有一个C#应用程序读取.msg文件并提取正文和附件。但是当我尝试加载.eml文件时,应用程序崩溃。我正在加载这样的文件:如何在C#中使用Outlook MAPI打开.eml文件?
MailItem mailItem = (MailItem)outlookApp.CreateItemFromTemplate(msgFileName);
mailItem.SaveAs(fullFilename, OlSaveAsType.olHTML); // save body in html format
for(int i = 0; i < mailItem.Attachments.Count; i++)
mailItem.Attachments[i].SaveAsFile(filename); // save attachments
这适用于.msg文件,但它不适用于.eml文件。我不明白为什么.eml文件不起作用,因为我可以在Outlook 2010中打开.eml文件。
如何使用Outlook Primary Interop Assembly加载.eml文件?
为什么你需要使用MAPI来加载.eml文件?由于.eml文件只是一个MIME消息,因此自己解析它不应太困难(在CodePlex中搜索MIME解析器)。在这方面有什么特定的需求吗? – 2011-05-18 21:54:44
这是因为我有一个应用程序与MAPI分裂.msg文件,我认为我不需要做一个更改并打开我的.eml文件,就像我用.msg文件做的那样,而无需编写新的代码。 – CubaLibre 2011-07-07 13:29:01