VB获取Outlook默认邮箱

时间:2014-03-11 02:43:45

标签: email vbscript outlook outlook-vba outlook-2007

我在vb中需要一些帮助。我需要一个Outlook 2007脚本,它返回默认数据文件的pst名称。要明确的是,用户收到电子邮件时的默认邮箱将是交换帐户。但是,某些用户将其个人文件夹用作默认设置,以便在收到电子邮件时,该邮件会自动转到指定的个人文件夹。所以我的目标是输出用户默认使用的交换帐户或个人文件夹的结果。如果是个人文件夹,我想要pst的位置/路径。 我尝试使用getdefaultfolder但它返回'inbox'。

objNS.GetDefaultFolder(olFolderInbox)

1 个答案:

答案 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