c# - 有没有办法在 C# 中打开 .msg 文件?
问题描述
我试图简单地检索 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);
}
解决方案
只有一种可能的方法 - 从在 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;
Office 文章服务器端自动化的注意事项陈述如下:
Microsoft 目前不推荐也不支持任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)的 Microsoft Office 应用程序自动化,因为 Office 可能表现出不稳定的行为和/或在此环境中运行 Office 时出现死锁。
如果您正在构建在服务器端上下文中运行的解决方案,您应该尝试使用已确保无人值守执行安全的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方案。如果您使用来自服务器端解决方案的 Office 应用程序,该应用程序将缺少许多成功运行所需的功能。此外,您将承担整体解决方案稳定性的风险。
在这种情况下,如果您只处理 Exchange 配置文件/帐户,则可以考虑使用 EWS。此外,您可以考虑使用 Outlook 所基于的低级 API - 扩展 MAPI 或只是围绕该 API 的任何第三方包装器。
推荐阅读
- javascript - Google Apps 脚本 - 在数组公式中将单元格转换为 SHA256
- python-asyncio - 挂在python中的异步服务器
- python-3.x - 动态替换列表中的变量
- r - 从不是 R 中先前样本子集的数据帧中采样随机行
- javascript - 如何测试使用量角器进行 api 调用的多个点击事件
- docker - 在浏览器中显示更新并使用 Docker 为 Vue.js 部署点击刷新
- python - numpy.random 与 numpy.random.Generate 有什么区别
- node.js - 在 azure 的 nodejs express 应用程序中托管子 ASP 应用程序
- amazon-web-services - 水平 pod 缩放器 k8s 利用率不工作,但 Value/AverageValue 工作
- tensorflow - Stateful LSTM Tensorflow Invalid Input_h Shape Error