以编程方式将 Exchange Online 邮箱添加到 Outlook

Programmatically adding an Exchange Online mailbox to Outlook

Redemption 是否支持将 Exchange Online 邮箱添加到 Outlook?我知道这可以使用 NameSpace.AddStoreEx 为 .pst 完成,但是 Redemption 可以处理 Exchange 在线商店吗?

我的目标是关闭 Outlook 自动映射并根据委派权限以编程方式添加 Exchange Online 邮箱。

谢谢。

听起来您对 NameSpace.GetSharedDefaultFolder 方法感兴趣,其中 returns 一个 Folder 对象代表指定用户的指定默认文件夹。此方法用于委托方案,其中一个用户已将访问权限委托给另一个用户一个或多个默认文件夹(例如,他们的共享 Calendar 或任何其他标准文件夹)。例如:

Sub ResolveName() 
 Dim myNamespace As Outlook.NameSpace 
 Dim myRecipient As Outlook.Recipient 
 Dim CalendarFolder As Outlook.Folder 
 
 Set myNamespace = Application.GetNamespace("MAPI") 
 Set myRecipient = myNamespace.CreateRecipient("Dan Wilson") 
 myRecipient.Resolve 
 If myRecipient.Resolved Then 
   Call ShowCalendar(myNamespace, myRecipient) 
 End If 
End Sub 
 
Sub ShowCalendar(myNamespace, myRecipient) 
 Dim CalendarFolder As Outlook.Folder 
 
 Set CalendarFolder = myNamespace.GetSharedDefaultFolder(myRecipient, olFolderCalendar) 
 CalendarFolder.Display 
End Sub

是的,Redemption 公开了 RDOSession.Stores.AddDelegateExchangeMailBoxStore - 请注意,它需要能够检索该邮箱的自动发现 XML。它需要被缓存,或者与 RDOSession.LogonHostedExhangeMailbox(需要显式凭据)一起使用,或者父对象 RDOSession 必须在 outlook.exe 地址 space 中使用(例如来自COM 加载项或 Outlook VBA) - 这样 Redemption 可以拦截 Outlook 凭据。