【问题标题】:Read Emails from outlook mailbox从 Outlook 邮箱中读取电子邮件
【发布时间】:2020-05-30 02:13:49
【问题描述】:

Outlook 产品版本:16.0.1073020348

所以我制作了一个脚本来阅读电子邮件并将它们插入数据库。

问题:脚本当前正在从我的收件箱(红旗)读取,而不是从共享邮箱(蓝旗)读取

所需解决方案:检查共享邮箱(蓝旗)

目前我的代码如下所示:

Set objOutlook = CreateObject("Outlook.Application")

Set objNamespace = objOutlook.GetNamespace("MAPI")
'PROBLEM HERE I GUESS
Set objFolder = objNamespace.GetDefaultFolder(6) 'Inbox

Set colItems = objFolder.Items

Set colFilteredItems = colItems.Restrict("[Unread]=true")

Set colFilteredItems = colFilteredItems.Restrict("[Subject] = SUBJECT")


For k = colFilteredItems.Count to 1 step -1 
    set objMessage  = colFilteredItems.Item(k)
    '....
next

任何帮助表示赞赏

尝试了@josefZ 建议的方法,但一直在苦苦挣扎 第一次尝试(最后一行失败):

Set myRecipient = objNamespace.CreateRecipient("mailbox@mail.com")

myRecipient.Resolve

Set objFolder = objNamespace.GetSharedDefaultFolder(myRecipient,olFolderInbox).Folders("Bandeja de Entrada")

【问题讨论】:

  • 申请GetSharedDefaultFolder method而不是GetDefaultFolder一个?
  • @JosefZ 试过但给了我一些错误,更新的问题你能检查一下吗?
  • @JosefZ 没关系解决 rn

标签: vbscript outlook scripting


【解决方案1】:

您可以使用GetSharedDefaultFolder,或者由于已在配置文件中打开代理存储,因此从Namespace.Stores 集合中检索代理邮箱并使用Store.GetDefaultFolder 而不是Namespace.GetDefaultFolder

【讨论】:

    【解决方案2】:

    就像这样工作:

    Set myRecipient = objNamespace.CreateRecipient("mailbox@mail.com")
    
    myRecipient.Resolve
    
    Set objFolder = objNamespace.GetSharedDefaultFolder(myRecipient,6) 'inbox
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-13
      • 1970-01-01
      • 2012-08-30
      • 1970-01-01
      • 2013-12-19
      相关资源
      最近更新 更多