gpt4 book ai didi

r - 使用 R 从 Outlook 电子邮件下载附件

转载 作者:行者123 更新时间:2023-12-02 01:29:37 25 4
gpt4 key购买 nike

我每周日都会收到一封带有附件(压缩文件夹)的电子邮件。电子邮件的主题永远不会改变。我想查找具有指定主题行的最新电子邮件并下载附件。我是 R 新用户,到目前为止,我只找到了一种根据主题打印电子邮件正文的方法(来自 stackoverflow How to retrieve Outlook inbox emails using R RDCOMClient? 上提出的其他问题之一)。理想情况下,我想查找在指定日期收到的具有指定主题的电子邮件,然后下载附件。请有人指出我正确的方向。任何帮助将不胜感激。谢谢。

最佳答案

您可以使用高级搜索方法搜索收件箱或任何其他文件夹:

library(RDCOMClient)
outlook_app <- COMCreate("Outlook.Application")
search <- outlook_app$AdvancedSearch(
"Inbox",
"urn:schemas:httpmail:subject = 'Super Important Email'"
)

这是一个异步方法,因此 R 不会等待搜索完成就继续下一步。虽然确实存在一个 AdvancedSearchComplete 事件来处理此问题,但我无法弄清楚如何使用 RDCOMClient 执行此操作。作为解决方法,Sys.sleep(5) 应该为搜索提供足够的时间来完成。

您可以查看这些结果并使用 ReceivedTime 方法查询其接收时间。要将这些时间转换为日期,请使用 Microsoft Office 基准日期 1899 年 12 月 30 日:

results <- search$Results()
results$Item(1)$ReceivedTime() # Received time of first search result
as.Date("1899-12-30") + floor(results$Item(1)$ReceivedTime()) # Received date

我们现在可以查看在特定日期(例如 2017 年 8 月 14 日)收到的电子邮件的结果。

for (i in 1:results$Count()) {
if (as.Date("1899-12-30") + floor(results$Item(i)$ReceivedTime())
== as.Date("2017-08-14")) {
email <- results$Item(i)
}
}

我们可以像查看搜索结果一样查看电子邮件的附件。第一个附件将是 email$Attachments(1) (注意电子邮件签名中的图片;这些也会显示!)。如果您对特定附件感兴趣,可以使用 FileName 方法找到它。找到所需的附件后,您可以将其保存到文件中并开始使用它,就像使用其他文件一样。

attachment_file <- tempfile()
email$Attachments(1)$SaveAsFile(attachment_file)
data <- read.csv(attachment_file)

我在这里使用了临时文件路径,但您当然可以将附件保存到永久位置。

关于r - 使用 R 从 Outlook 电子邮件下载附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45577698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com