【问题标题】:Access Additional Exchange Mailbox using Microsoft.Office.Interop.Outlook使用 Microsoft.Office.Interop.Outlook 访问其他 Exchange 邮箱
【发布时间】:2011-03-28 22:20:41
【问题描述】:

我正在尝试找到一种使用 Office.Interop.Outlook COM 对象连接到其他邮箱的方法。目前我正在执行以下操作(添加 COM 对象后):

var app = new Microsoft.Office.Interop.Outlook.Application();
var ns = app.GetNamespace("MAPI");
ns.Logon();
var inboxFolder = ns.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);

这成功地将我连接到我的主收件箱,然后我可以循环访问。

我接下来要寻找的是一种使用附加邮箱 X 并获取默认文件夹的方法。

我正在使用带有 COM 对象 Microsoft Outlook 12.0 对象库(版本 9.3)的 Framework 4.0

不确定 Exchange 的版本。

干杯

【问题讨论】:

    标签: interop outlook exchange-server


    【解决方案1】:

    卢克在上面有正确的答案。以下代码适用于使用 pywin32 的 Python 3.7:

    import win32com.client
    outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
    
    other_user = outlook.CreateRecipient("user.name@example.com")
    print(other_user)
    other_mailbox = outlook.GetSharedDefaultFolder(other_user, 6) # 6= inbox see https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.outlook.oldefaultfolders?view=outlook-pia
    print(other_mailbox)
    print(other_mailbox.Items[0])
    

    【讨论】:

      【解决方案2】:

      我想我有它:-

      ns = app.GetNamespace("MAPI");
      ns.Logon();
      var recipient = ns.CreateRecipient("xx@yy.com");
      recipient.Resolve();
      var sharedFolder = ns.GetSharedDefaultFolder(recipient, Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
      

      不确定ns.Logon 是否有必要,但我还是把它留下了。

      【讨论】:

        猜你喜欢
        • 2012-07-27
        • 2013-12-02
        • 2016-10-17
        • 1970-01-01
        • 2015-01-23
        • 2011-01-01
        • 2022-05-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多