我正在尝试简单地检索Outlook电子邮件文件名及其本地路径,然后通过Outlook打开该.msg文件。有没有办法做到这一点?还是完全不可能?
我不需要阅读.msg文件的内容。我只需要打开它,以便最终用户可以查看保存的电子邮件文件。
我做了以下工作,但根本不起作用。
try {
Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application();
string filePath = MapPath("~\\path\\filename.msg"); var item = app.Session.OpenSharedItem(filePath) as Microsoft.Office.Interop.Outlook.MailItem;
string body = item.HTMLBody; int att = item.Attachments.Count;
} catch (Exception ex) {
Global.Log.Error(ex.Message, ex.InnerException);
}
Considerations for server-side Automation of Office文章指出以下内容:
Microsoft当前不建议并且不支持从任何无人参与的非交互客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT Services)中的Microsoft Office应用程序自动化,因为Office可能表现出不稳定的行为和/或在此环境中运行Office时出现死锁。
如果要构建在服务器端上下文中运行的解决方案,则应尝试使用已确保无人值守执行安全的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方法。如果使用服务器端解决方案中的Office应用程序,则该应用程序将缺少许多成功运行所需的功能。此外,您将承担整体解决方案稳定性的风险。
如果仅处理Exchange配置文件/帐户,则可以考虑使用EWS。您也可以考虑使用基于Outlook的低级API-扩展MAPI或围绕该API的任何第三方包装。