首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用R语言通过pop3或imap访问电子邮件和获取收件箱信息?

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

Stack Overflow用户
提问于 2017-08-16 21:13:14
回答 1查看 419关注 0票数 1

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

EN

回答 1

Stack Overflow用户

发布于 2020-07-13 14:25:54

很抱歉回答得太晚了,但它可能对未来的访问者有用。

从2019年开始,你可以使用mRpostman从R内部执行IMAP命令。可以执行邮箱操作,消息搜索和获取等。从0.3.0版本开始,你也可以下载附件。

编辑2021年3月

从0.9.X版本开始,mRpostman开始采用R6语法。因此,以前版本中的大多数函数都变成了方法。这意味着它们现在应该以connection_object$method()的方式调用。

有关如何使用日期条件(在特定日期发送邮件)下载与以前邮件搜索相结合的附件的简单(已更新)示例如下:

步骤1)配置到Outlook服务器的连接:

请注意,url "imaps://outlook.office365.com"是使用Office365的服务器的默认值。

代码语言:javascript
复制
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)

步骤2)选择“收件箱”文件夹

代码语言:javascript
复制
con$select_folder(name = "INBOX")

步骤3)根据特定标准/标准搜索消息,例如在特定日期接收的消息

代码语言:javascript
复制
res1 <- con$search_on(date_char = "02-Jan-2020")

步骤4) 备选方案1:获取邮件内容(正文或正文)+提取附件

代码语言:javascript
复制
con$fetch_text() %>% # or with fetch_body()
  con$get_attachments()

步骤4) 备选方案2:直接获取附件

代码语言:javascript
复制
con$fetch_attachments()

使用管道%>%运算符的不同方法:

代码语言:javascript
复制
con$search_on(date_char = "02-Jan-2020") %>%
  con$fetch_text() %>% # or with fetch_body()
  con$get_attachments()

# OR

con$search_on(date_char = "02-Jan-2020") %>%
  con$fetch_attachments()

因此,在所有这些示例中,mRpostman将创建一个"user@server.com/INBOX“目录,其中包含与您的邮件的id相匹配的子文件夹。在子文件夹中,您将遇到附件。

注意:如果您试图获取大文件(以及随后的大消息),则可能有必要在configure_imap()中增加timeout_ms和/或buffersize参数。

有关mRpostman功能的详细介绍,请参阅该软件包的官方网站:https://allanvc.github.io/mRpostman/

EDIT 2:

有人问是否可以按时间戳进行搜索。尽管IMAP协议不支持这种搜索,但有一种老套的方法可以实现这一点。假设我们想要搜索所有在“早上7:30”收到的消息。从“2021年3月3日”开始。

代码语言:javascript
复制
con$search(AND(
   since(date_char = "03-Mar-2021"),
   string(expr="07:30", where = "HEADER Date")
))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45714584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档