代码之家  ›  专栏  ›  技术社区  ›  gaut

R、 RDCOMClient和Outlook:使用共享地址访问收件箱邮件

  •  1
  • gaut  · 技术社区  · 6 年前

    我在Outlook中有几个收件箱:我的。name@abc.com,再加上一些共享的收件箱,如团队。data@abc.com 例如,团队。ba@abc.com.

    跟随 this method

    问题是有时收件箱会访问我的邮箱。name@abc.com,有时可能是其他人!我已经阅读了Omegahat的解释,但是他们的例子主要集中在excel上,我没有VB的经验。

    我想定义从哪个收件箱检索邮件。。我的代码到目前为止(与不同的收件箱的问题)。干杯。

    OutApp <- COMCreate("Outlook.Application")
    outlookNameSpace = OutApp$GetNameSpace("MAPI")
    folder <- outlookNameSpace$Folders(1)$Folders(folderName)
    folder$Name(1)
    emails <- folder$Items
    for (i in 1:10)
    {
      subject <- emails(i)$Subject(1)
        print(emails(i)$Subject()) 
    }
    

    编辑:我正在运行MSOffice Pro Plus 2016

    相关: How to use RDCOMClient to send Outlook email from a secondary account - translate existing VBA code?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Parfait    6 年前

    考虑Outlook的 Stores

    OutApp <- COMCreate("Outlook.Application")
    OutStores <- OutApp$Session()$Stores()
    
    # 1ST ACCOUNT
    myfolder <- OutStores[[1]]$GetRootFolder()$folders(folderName)
    
    # 2ND ACCOUNT
    myfolder <- OutStores[[2]]$GetRootFolder()$folders(folderName)
    
    ...
    

    甚至在所有商店中循环:

    OutApp <- COMCreate("Outlook.Application")
    OutStores <- OutApp$Session()$Stores()
    
    store_count <- OutStores$Count()
    
    for (i in 1:store_count) {
        myfolder <- OutStores[[i]]$GetRootFolder()$folders(folderName)
    
        emails <- myfolder$Items
    
        for (i in 1:10) {
          subject <- emails(i)$Subject()
          print(subject) 
        }
    }
    
    # QUIT APPLICATION
    OutApp$Quit()
    
    # RELEASE COM RESOURCES
    subject <- NULL; emails <- NULL; myfolder <- NULL
    OutStores <- NULL; OutApp <- NULL
    gc()