尝试使用ASP.NET打开Outlook

时间:2016-11-27 08:26:06

标签: asp.net vb.net outlook

我使用VB在ASP.NET中创建了一个应用程序。我写了以下代码。

它在localhost中出错,但是当我从我的应用程序运行它时,它运行正常。

我检查过DCOMCNFG - > Outlook / Office条目不存在。

请告诉我如何使用localhost / server上的应用程序附件打开Outlook?

ByVal recipients As List(Of String),
   ByVal smtpAddress As String,
   ByVal attachments As List(Of String))

    ' Create a new MailItem and set the To, Subject, and Body properties.
    'Dim application As New Outlook.Application
    Dim application As New Outlook.Application()
    Threading.Thread.Sleep(2000)

    Dim newMail As Outlook.MailItem = DirectCast(application.CreateItem(Outlook.OlItemType.olMailItem), Outlook.MailItem)

    ' Set up all the recipients.
    For Each recipient In recipients
        newMail.Recipients.Add(recipient)
    Next

    If newMail.Recipients.ResolveAll() Then
        newMail.Subject = subject
        newMail.Body = body
        For Each attachment As String In attachments
            newMail.Attachments.Add(attachment, Outlook.OlAttachmentType.olByValue)
        Next
    End If

    newMail.Display(True)

1 个答案:

答案 0 :(得分:0)

您需要使用任何可以处理.pst文件但不涉及Outlook的第三方组件。

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

如果要构建在服务器端上下文中运行的解决方案,则应尝试使用已为安全无人值守执行的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方法。如果从服务器端解决方案使用Office应用程序,则应用程序将缺少许多成功运行的必要功能。此外,您将承担整体解决方案稳定性的风险。请在Considerations for server-side Automation of Office文章中详细了解相关内容。