我在vb中需要一些帮助。我需要一个Outlook 2007脚本,它返回默认数据文件的pst名称。要明确的是,用户收到电子邮件时的默认邮箱将是交换帐户。但是,某些用户将其个人文件夹用作默认设置,以便在收到电子邮件时,该邮件会自动转到指定的个人文件夹。所以我的目标是输出用户默认使用的交换帐户或个人文件夹的结果。如果是个人文件夹,我想要pst的位置/路径。 我尝试使用getdefaultfolder但它返回'inbox'。
objNS.GetDefaultFolder(olFolderInbox)
答案 0 :(得分:0)
Outlook对象模型不公开PST路径。您可以使用扩展MAPI(仅限C ++或Delphi)或Redemption(任何语言)来确定PST路径。有关读取RDOPstStore.PstPath属性的示例,请参见下文:
skPstAnsi = 1
skPstUnicode = 2
skPrimaryExchangeMailbox = 3
skDelegateExchangeMailbox = 4
skPublicFolders = 5
set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
for each Store in Session.Stores
Debug.Print Store.Name
if (Store.StoreKind = skPstAnsi) or (Store.StoreKind = skPstUnicode) Then
Debug.Print Store.PstPath
ElseIf (Store.StoreKind = skPrimaryExchangeMailbox) or (Store.StoreKind = skDelegateExchangeMailbox) or (Store.StoreKind = skPublicFolders) Then
Debug.Print Store.ServerDN
End If
next