【问题标题】:Open Outlook Application on the Client-side with an Attachment在客户端打开带有附件的 Outlook 应用程序
【发布时间】:2019-11-07 01:47:57
【问题描述】:

我无法使用来自 Web 服务器的附件打开 Outlook 应用程序(客户端)。这是我的代码。有什么建议吗?

        Dim app As Microsoft.Office.Interop.Outlook.Application
        Dim appNameSpace As Microsoft.Office.Interop.Outlook._NameSpace
        Dim memo As Microsoft.Office.Interop.Outlook.MailItem
        Dim processes = System.Diagnostics.Process.GetProcessesByName("OUTLOOK")
        Dim collCount As Integer = processes.Length

       If collCount > 0 Then
                app = Marshal.GetActiveObject("Outlook.Application")
                memo = app.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem)
                memo.Attachments.Add(Report, Outlook.OlAttachmentType.olByValue, , HttpContext.Current.Session("fileName"))
                memo.Display()
            Else
                Try
                    app = New Microsoft.Office.Interop.Outlook.Application
                    appNameSpace = app.GetNamespace("MAPI")
                    Process.Start("OUTLOOK")
                    memo = app.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem)
                    memo.Attachments.Add(Report, Outlook.OlAttachmentType.olByValue, , HttpContext.Current.Session("fileName"))
                    memo.Display()
                Catch ex As Exception
                    Debug.WriteLine(ex.Message)
                End Try
            End If

【问题讨论】:

    标签: javascript asp.net vb.net outlook client-side


    【解决方案1】:

    ASP.NET 代码在服务器端运行,因此您至少应该在那里安装 Outlook。您的代码永远不会在客户端运行。

    我无法使用来自 Web 服务器的附件打开 Outlook 应用程序(客户端)。

    所有当前版本的 Microsoft Office 都经过设计、测试和配置,可作为最终用户产品在客户端工作站上运行。他们假设一个交互式桌面和用户配置文件。它们不提供满足设计为无人值守运行的服务器端组件需求所需的重入性或安全性级别。

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

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

    Considerations for server-side Automation of Office 文章中了解更多信息。

    【讨论】:

      【解决方案2】:

      您不能 - 该代码将在服务器上运行,没有人会看到该消息。而且无论如何您都无法在服务器上运行 Outlook。
      只有在您的网站被标记为受信任的情况下,才能在客户端上运行。

      但是,您可以创建一个 MIME (EML) 文件并让用户从浏览器下载它 - Outlook 很乐意打开并显示它。要确保它显示为未发送,请将X-Unsent MIME 标头设置为 1。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-14
        • 1970-01-01
        • 1970-01-01
        • 2011-06-02
        • 1970-01-01
        • 2017-01-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多