如果我想使用R,pop3或imap检查我的Outlook电子邮件的收件箱,我该怎么办? 我需要(自动)从电子邮件收件箱下载一些附件到RStudio
答案 0 :(得分:0)
很抱歉无法提供最新答案,但对将来的访问者可能有用。
自2019年以来,您可以使用mRpostman
从R内部执行IMAP命令。可以进行邮箱操作,邮件搜索和提取等操作。从0.3.0版开始,您还可以下载附件。
有关如何使用日期条件(在特定日期发送的邮件)结合先前的邮件搜索下载附件的简单示例:
步骤1)配置与Outlook服务器的连接:
请注意,URL "imaps://outlook.office365.com"
是使用Office 365的服务器的默认URL。
library(mRpostman)
imapconf <- configure_imap(url = "imaps://outlook.office365.com",
username="user@company.com",
password=rstudioapi::askForPassword(),
verbose=TRUE
)
步骤2)选择“收件箱”;搜索包含特定条件的消息;获取完整的消息;并获取附件: 请注意在这种情况下如何传递日期。
重要:请注意,使用了博览会管道%$%
。它使我们可以将多个参数传递给下一步。我们要从搜索步骤中检索并正确映射两个对象到fetch_full_msg()
函数:imapconf
对象和msg_id
。
imapconf %>%
select_mailbox(mbox = "INBOX") %>%
search_on(date_char = "13-Jul-2020") %$%
fetch_full_msg(imapconf = imapconf, msg_id = msg_id,
write_to_disk = TRUE) %>%
get_attachments()
如果您已经知道消息的一个或多个ID(可以是消息的序列号-MSN或消息的唯一ID-UID),则可以跳过搜索部分,方法是直接在fetch_full_msg()
。
替代步骤2)直接抓取:
假设您的邮件的MSN为12345。比您会做的事情类似:
imapconf %>%
select_mailbox(mbox = "INBOX") %>%
fetch_full_msg(msg_id = 12345, write_to_disk = TRUE) %>%
get_attachments()
如果您使用的是UID而不是MSN,例如UID 13768,请执行以下操作:
imapconf %>%
select_mailbox(mbox = "INBOX") %>%
fetch_full_msg(msg_id = 13768, by = "UID", write_to_disk = TRUE) %>%
get_attachments()
结果,在所有这些示例中,mRpostman
将创建一个“ INBOX”目录,其中包含与您的消息(或消息)的ID匹配的子文件夹。在子文件夹中,您会遇到附件:
注意::如果您尝试获取大文件(并因此获取大消息),则需要在{{中添加timeout_ms
和/或buffersize
参数1}}。
要全面了解mRpostman的功能,请参阅软件包的插图:https://allanvc.github.io/mRpostman/articles/basics.html