使用 RDCOMClient 搜索 Outlook 收件箱
Using RDCOMClient to search Outlook inbox
我正在尝试使用 RDCOMClient 在我的 Outlook 收件箱中搜索电子邮件中的特定主题,然后获取附件。
我在一封电子邮件中使用此功能,但由于主题包含日期元素,我需要将搜索设为 like 子句,但不太清楚这适合我的以下查询。
outlook_app <- COMCreate("Outlook.Application")
search <- outlook_app$AdvancedSearch(
"Inbox",
"urn:schemas:httpmail:subject = 'test email executed at 13/01/2019 10:00:08'"
)
我只需要搜索主题行的第一部分,查找日期和时间之前的所有内容。
我认为这样的事情应该可行。它应该搜索任何包含指定短语的消息,并下载它们的每个附件。
library(RDCOMClient)
library(fs)
search.phrase <- 'test email executed at'
save.fldr <- tempdir() # Set a root folder to save attachments into
print(save.fldr)
outlook_app <- COMCreate("Outlook.Application")
search <- outlook_app$AdvancedSearch(
"Inbox",
paste0("http://schemas.microsoft.com/mapi/proptag/0x0037001E ci_phrasematch '", search.phrase, "'")
)
Sys.sleep(10) # Wait some time to allow search to complete
results <- search[['Results']]
for(i in c(1:results[['Count']])){ # Loop through search results
attachments.obj <- results[[i]][['attachments']] # Gets the attachment object
if(attachments.obj[['Count']] > 0){ # Check if there are attachments
attach.fldr <- file.path(save.fldr, path_sanitize(results[[i]][['Subject']])) # Set folder name for attachments based on email subject
if(!dir.exists(attach.fldr)){
dir.create(attach.fldr) # Create the folder for the attachments if it doesn't exist
}
for(a in c(1:attachments.obj[['Count']])){ # Loop through attachments
save.path <- file.path(attach.fldr, attachments.obj[[a]][['FileName']]) # Set the save path
print(save.path)
attachments.obj[[a]]$SaveAsFile(save.path) # Save the attachment
}
}
}
我正在尝试使用 RDCOMClient 在我的 Outlook 收件箱中搜索电子邮件中的特定主题,然后获取附件。 我在一封电子邮件中使用此功能,但由于主题包含日期元素,我需要将搜索设为 like 子句,但不太清楚这适合我的以下查询。
outlook_app <- COMCreate("Outlook.Application")
search <- outlook_app$AdvancedSearch(
"Inbox",
"urn:schemas:httpmail:subject = 'test email executed at 13/01/2019 10:00:08'"
)
我只需要搜索主题行的第一部分,查找日期和时间之前的所有内容。
我认为这样的事情应该可行。它应该搜索任何包含指定短语的消息,并下载它们的每个附件。
library(RDCOMClient)
library(fs)
search.phrase <- 'test email executed at'
save.fldr <- tempdir() # Set a root folder to save attachments into
print(save.fldr)
outlook_app <- COMCreate("Outlook.Application")
search <- outlook_app$AdvancedSearch(
"Inbox",
paste0("http://schemas.microsoft.com/mapi/proptag/0x0037001E ci_phrasematch '", search.phrase, "'")
)
Sys.sleep(10) # Wait some time to allow search to complete
results <- search[['Results']]
for(i in c(1:results[['Count']])){ # Loop through search results
attachments.obj <- results[[i]][['attachments']] # Gets the attachment object
if(attachments.obj[['Count']] > 0){ # Check if there are attachments
attach.fldr <- file.path(save.fldr, path_sanitize(results[[i]][['Subject']])) # Set folder name for attachments based on email subject
if(!dir.exists(attach.fldr)){
dir.create(attach.fldr) # Create the folder for the attachments if it doesn't exist
}
for(a in c(1:attachments.obj[['Count']])){ # Loop through attachments
save.path <- file.path(attach.fldr, attachments.obj[[a]][['FileName']]) # Set the save path
print(save.path)
attachments.obj[[a]]$SaveAsFile(save.path) # Save the attachment
}
}
}