如何使用R语言通过pop3或imap访问电子邮件并获取收件箱消息?

时间:2017-08-16 13:13:14

标签: r imap pop3

如果我想使用R,pop3或imap检查我的Outlook电子邮件的收件箱,我该怎么办? 我需要(自动)从电子邮件收件箱下载一些附件到RStudio

1 个答案:

答案 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}}。

enter image description here

enter image description here

要全面了解mRpostman的功能,请参阅软件包的插图:https://allanvc.github.io/mRpostman/articles/basics.html