【问题标题】:Targeting different versions of Outlook针对不同版本的 Outlook
【发布时间】:2016-03-11 04:23:59
【问题描述】:

我有一个程序能够发送程序生成的电子邮件。

大部分办公室(包括我)都安装了 Outlook 2010,但由于升级,有少数人使用 Outlook 2013,还有一个人使用 Outlook 2016。

无论安装哪个版本的 Outlook,我都希望该程序能够正常工作,因为暂时没有升级办公室其他部分的计划。

编辑:我目前的方法

参考:C:\WINDOWS\assembly\GAC_MSIL\Microsoft.Office.Interop.Outlook\14.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Outlook.dll

Imports Microsoft.Office.Interop.Outlook.OlItemType
Imports Microsoft.Office.Interop

Private Sub cmdEmailInvite_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdEmailInvite.Click
    If lstInvites.SelectedItems.Count > 0 Then
        Dim Subject As String = "Invite Code"
        Dim Body As String = "Please visit our registration page"

        Dim oApp As New Outlook.Application
        Dim oEmail As Outlook.MailItem

        oEmail = oApp.CreateItem(olMailItem)
        oEmail.BodyFormat = Outlook.OlBodyFormat.olFormatHTML
        oEmail.To = lstInvites.SelectedItems(0).Text
        oEmail.Subject = Subject
        oEmail.Body = Body
        oEmail.Display()
    End If
End Sub

【问题讨论】:

  • I'd like to be able to have the program work no matter which version of Outlook 如果我们不知道您现在的情况,我们如何提供帮助?您知道不同版本之间存在差异,而且没有一个是相同的。无论哪种方式,您最终都会因此而写得更多...
  • @Codexer 好点。已添加当前代码。
  • 您使用的 dll 对于 2013 年和 2016 年是正确的,而不是 2010 年。恐怕您不能引用 2 个不同版本的互操作。
  • 一种选择是创建一个单独的dll,确定电脑上安装的版本并根据版本使用其中一个...

标签: vb.net outlook


【解决方案1】:

您可以查看NetOffice,它支持使用多个版本的 Office。有一个使用 Outlook on the web site 发送电子邮件的示例。我没有使用 Outlook API,但 Word API 对我来说效果很好,它们(我相信)与常规自动化 API 几乎相同。

【讨论】:

  • 这看起来很有希望
【解决方案2】:

我总是使用System.Net.Mail。您只需要知道邮件服务器的位置。 这里也是不错的资源www.systemnetmail.com

【讨论】:

  • 此程序集使用 SMTP 直接发送电子邮件。问题是关于通过 MS Outlook 发送。
【解决方案3】:

只要您将 interop dll 与您的应用程序一起包含并以支持的最低版本 Outlook (2010) 为目标,就可以了。 您还需要确保他在引用上的“特定版本”设置为 false。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-30
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 2016-12-10
    • 1970-01-01
    • 2021-02-19
    相关资源
    最近更新 更多