如何使用R语言阅读电子邮件信息

5
我无法确定是否有一个R包可以让我从SMTP或POP服务器读取电子邮件。 我看到很多关于发送电子邮件的内容,这个没问题。 但是从服务器下载它们却困扰着我。
谢谢。

2
对于IMAP,您可以使用https://cran.r-project.org/web/packages/mRpostman/index.html - jogo
顺便提一下,你无法从SMTP读取电子邮件,它是一个仅限发送的协议。 - r2evans
对于SMTP https://cran.r-project.org/web/packages/emayili/index.html - jogo
1个回答

7

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()

结果将类似于以下内容:

enter image description here

还有许多许多其他消息搜索和许多其他 IMAP 操作可以使用 mRpostman 进行。该软件包的指南和文档是一个很好的起点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接