【问题标题】:Is there a way to open .msg files in C#?有没有办法在 C# 中打开 .msg 文件?
【发布时间】:2020-01-27 23:43:48
【问题描述】:

我正在尝试简单地检索 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); 
}

【问题讨论】:

  • “根本不起作用”没有帮助。你有错误吗?如果是这样,是什么?我建议你去掉 try...catch 以便我们看到有用的回溯。
  • 当您使用asp.net 标签时 - 我假设我们正在谈论网络应用程序。如果这是您的控制器/页面代码 - 您应该知道,您是通过 服务器 端的互操作打开 Outlook,而不是在客户端。要在客户端打开它,您应该允许您的用户以正确的 MIME 类型下载它。
  • @JustinEzequiel 它不会产生错误。 I代码运行,没有任何反应。异常对象也是 null
  • @vasily.sib 我该怎么做?你能指点我一些合适的文件吗?
  • @ZWaltrz IThe code runs and nothing happens. 我敢打赌确实会发生 - 服务器上的 Outlook 在应用程序池帐户的桌面上打开。我怀疑你到目前为止只在开发 PC 上测试过这段代码,如果你检查一下,你会发现一些幽灵 Outlook 实例正在运行。

标签: c# asp.net outlook office-interop


【解决方案1】:

只有一种可能的方法 - 从 IE 中运行的 JS 代码自动化 Outlook 或使用 mailto 协议:

var link = "mailto:target@example.com"; 
 // In addition to this you can add subject or body as parameter . 
 // For e.g. 
 // "mailto:target@example.com?subject=test subject&body=my text"
 window.location.href = link;

Considerations for server-side Automation of Office 文章声明如下:

Microsoft 目前不推荐也不支持任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)的 Microsoft Office 应用程序自动化,因为 Office 可能表现出不稳定Office 在此环境中运行时出现的行为和/或死锁。

如果您要构建在服务器端上下文中运行的解决方案,您应该尝试使用已确保无人值守执行安全的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方案。如果您使用服务器端解决方案中的 Office 应用程序,该应用程序将缺少许多成功运行所需的功能。此外,您将在整体解决方案的稳定性方面承担风险。

在这种情况下,如果您只处理 Exchange 配置文件/帐户,则可以考虑使用 EWS。此外,您可以考虑使用 Outlook 所基于的低级 API - 扩展 MAPI 或只是围绕该 API 的任何第三方包装器。

【讨论】:

    猜你喜欢
    • 2019-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 2020-08-13
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    相关资源
    最近更新 更多