谢谢。
IMAP是用于接收电子邮件的协议,而SMTP是用于发送电子邮件的协议。POP3是另一种接收电子邮件的协议,但由于IMAP有更多功能,其使用已经大幅减少。
因此,如果您正在寻找实现R中IMAP功能的软件包,您可以使用mRpostman
软件包,它是一个R的IMAP客户端。您将能够执行邮箱/文件夹操作、使用单个或多个条件进行消息搜索、获取消息和附件等-所有这些都来自于R内部。
要了解mRpostman
功能的全面介绍,请参阅“mRpostman基础知识”vignette:https://allanvc.github.io/mRpostman/articles/basics.html
以下是如何使用该软件包的简单示例:
2021年3月编辑
从版本v0.9.X开始,mRpostman开始采用R6
语法。因此,以前版本中的大多数函数变成了方法。这意味着现在应该以connection_object$method()
的方式调用它们。其他功能,例如OAuth2支持,则被添加(请参见http://allanvc.github.io/mRpostman/)。
适用于Office 365邮件帐户的示例:
步骤1)配置到Outlook服务器的连接:
请注意,"imaps://outlook.office365.com"
是使用Office 365的服务器的默认值。
con <- configure_imap(url="imaps://outlook.office365.com",
username="your_user@company.com",
password=rstudioapi::askForPassword())
# other IMAP providers that were tested: Hotmail ("imaps://imap-mail.outlook.com"),
# Gmail (imaps://imap.gmail.com), Yahoo (imaps://imap.mail.yahoo.com/),
# AOL (imaps://export.imap.aol.com/), Yandex (imaps://imap.yandex.com)
注意:如果您不想使用OAuth2,而是要连接到GMail、Yahoo、AOL或其他免费的邮件提供商,则可能需要启用“允许不安全应用程序访问”选项。请参阅:https://allanvc.github.io/mRpostman/articles/basics.html#allowing-less-secure-apps-access
第二步)为了搜索或获取邮件,我们首先需要选择一个邮件文件夹。在此示例中,我们选择"INBOX"
:
con$select_folder(name = "INBOX")
步骤三) 单一搜索:
在这里,我们模拟了一个在“收件箱”内进行消息搜索的操作。我们搜索包含字符串“@k-state.edu”在消息头部分的“FROM”字段中的邮件。还有许多其他搜索功能,可实现各种其他搜索可能性(请参阅软件包文档)。
res1 <- con$search_string(expr = "@k-state.edu", where = "FROM")
步骤4)消息获取:
在这一步中,我们获取步骤3返回的消息ID的TEXT部分。mRpostman
将创建一个包含已获取消息部分的文本文件的“user@server.com/INBOX”目录。
res1 %>%
con$fetch_text(write_to_drisk = TRUE)
第五步) 提取或获取附件。
备选方案1: 直接获取
res1 %>%
con$fetch_attachments()
方案二:在获取文本/正文后提取附件:
res1 %>%
con$fetch_text() %>% # or with fetch_body
con$get_attachments()
还有许多许多其他消息搜索和许多其他 IMAP 操作可以使用 mRpostman
进行。该软件包的指南和文档是一个很好的起点。