获取对其他收件箱的参考
Posted
技术标签:
【中文标题】获取对其他收件箱的参考【英文标题】:Get reference to additional Inbox 【发布时间】:2012-02-23 00:00:41 【问题描述】:我正在使用 Outlook 2007 - 我的主要邮箱是:Tait, Mark
我还在我的个人资料中添加了另一个邮箱:采购、请求
两者都在 Outlook 中显示为***文件夹:
邮箱 - Tait, Mark> -对话历史 - 已删除的项目 -草稿 -收件箱 -垃圾邮件
邮箱 - 采购、请求 --对话记录 --已删除的项目 --草稿 --收件箱 --垃圾邮件
我可以使用以下方式获取对我的默认收件箱(Tait、Mark)的引用:Set Inbox = ns.GetDefaultFolder(olFolderInbox)
如何在“采购,请求”邮箱中获得对收件箱的引用?
【问题讨论】:
【参考方案1】:这样的事情应该可以解决问题
Dim objNS As Outlook.NameSpace
Dim objFolder As Outlook.MAPIFolder
Set objNS = GetNamespace("MAPI")
Set objFolder = objNS.Folders("Procurement, Request")
Set objFolder = objFolder.Folders("Inbox")
这个链接有一些有用的代码handling different Inboxes - 它可能是有趣的
【讨论】:
@MarkTait 很高兴能帮上忙 :) 这仅在商店已添加到当前配置文件时才有效。 @brettdj 请问如何将 Set objFolder = objNS.Folders("Procurement, Request") 和 Set objFolder = objFolder.Folders("Inbox") 自动化成一个像 Public Sub AppResponseManage(Item作为 Outlook.MailItem)接收 Mailitem 作为参数(换句话说,如何从邮件项目中提取邮箱名称和收件箱文件夹名称?)非常感谢【参考方案2】:Dim olNS As NameSpace
Dim InputFolder As Outlook.MAPIFolder
Set olNS = Outlook.Application.GetNamespace("MAPI")
' Get reference to folder in users Mailbox for Input
Set InputFolder = olNS.Folders("Procurement, Request").Folders("Inbox")
' all the emails in the shared inbox are represented by:
InputFolder.Items
【讨论】:
请详细说明这段代码是如何回答这个问题的。【参考方案3】:使用Namespace.GetSharedDefaultFolder
。即使邮箱没有在当前配置文件中打开,它也可以工作。当然,您仍然需要有权打开邮箱并访问相关文件夹:
Set vNamespace = Application.GetNamespace("MAPI")
set vRecipient = vNamespace.CreateRecipient("Procurement, Request")
if vRecipient.Resolve Then
set vFolder = vNamespace.GetSharedDefaultFolder(vRecipient, olFolderInbox)
End If
如果您需要打开其他用户的邮箱(所有文件夹都关闭),您可以使用Redemption 及其RDOSession.GetSharedMailbox 方法:
set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set Store = Session.GetSharedMailbox("Procurement, Request")
set vFolder = Store.GetDefaultFolder(olFolderInbox)
MsgBox "The address of the mailbox owner: " & Store.Owner.Address
【讨论】:
以上是关于获取对其他收件箱的参考的主要内容,如果未能解决你的问题,请参考以下文章