Откройте приложение Outlook на клиентской стороне с вложением. - PullRequest
0 голосов
/ 07 ноября 2019

У меня проблемы с открытием приложения 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

Ответы [ 2 ]

1 голос
/ 07 ноября 2019

ASP.NET-код выполняется на стороне сервера, поэтому на нем должен быть установлен хотя бы Outlook. Ваш код никогда не будет выполняться на стороне клиента.

У меня проблемы с открытием приложения Outlook (клиента) с вложенным файлом с веб-сервера.

Все текущие версии Microsoft Office были разработаны, протестированы и настроены для работы в качестве продуктов конечного пользователя на клиентской рабочей станции. Они предполагают наличие интерактивного рабочего стола и профиля пользователя. Они не обеспечивают уровень повторного входа или безопасности, который необходим для удовлетворения потребностей серверных компонентов, предназначенных для автоматической работы.

В настоящее время Microsoft не рекомендует и не поддерживает автоматизацию Microsoft Office. приложения из любого автоматического неинтерактивного клиентского приложения или компонента (включая ASP, ASP.NET, DCOM и NT Services), поскольку Office может демонстрировать нестабильное поведение и / или тупиковую блокировку при запуске Office в этой среде.

Если вы создаете решение, которое выполняется в контексте на стороне сервера, вы должны попытаться использовать компоненты, которые были сделаны безопасными для автоматического выполнения. Или вы должны попытаться найти альтернативы, которые позволяют хотя бы части кода работать на стороне клиента. Если вы используете приложение Office из серверного решения, приложению не хватит многих необходимых возможностей для успешной работы. Кроме того, вы будете рисковать стабильностью вашего общего решения.

Подробнее об этом читайте в статье Соображения по серверной автоматизации Office .

0 голосов
/ 07 ноября 2019

Вы не можете - этот код будет выполняться на сервере, где никто не увидит сообщение. И все равно вы не можете запустить Outlook на сервере.
Запуск на стороне клиента возможен только из IE, и только если ваш сайт помечен как надежный.

Однако вы можете создать файл MIME (EML) ипусть пользователь загрузит его из браузера - Outlook с радостью откроет и отобразит его. Чтобы он отображался как неотправленный, установите заголовок X-Unsent MIME равным 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...