如何发送gmail邮件

在您的R人生的某个时刻,您可能希望与不使用R的同事共享分析结果。 有很多方法可以做到这一点。 最简单(也是最便宜)的方法之一是通过电子邮件发送结果。

但它是一种悲哀自动化您的整个分析流程,仅手工Craft.io,并在年底发送电子邮件。 幸运的是,您不必这样做。 有几个R软件包,可让您直接从R脚本发送电子邮件。 在本文中,我将演示其中的一个:Jim Hester的gmailr ,他现在是RStudio的软件工程师。

显然,您需要一个Gmail帐户,如果您没有Gmail帐户,则可以免费设置。 然后,在可以使用R中的帐户之前,您需要将其设置为可进行API访问。 这是如何做。

转到console.developers.google.com (是的,这是一个子子网域)。 如果您还没有开发人员项目,则会要求您创建一个。

在信息中心的顶部,您应该看到“启用API和服务”的选项。 点击那个。

沙龙·马克斯(IDG)

您可以选择在Google Developers Console仪表板中启用API。

接下来,您将要搜索Gmail API。 单击该,然后单击启用。

R脚本将需要凭据,因此请单击右上角的创建凭据。

沙龙·马克斯(Sharon Machlis)IDG

为Gmail API创建授权凭证。

根据Jim Hester的指示,我们需要一个客户ID,因此我将选择客户ID。

沙龙·马克斯(IDG)

创建一个客户端ID。

现在,它要求一个应用程序类型。 由于这里没有“ R脚本”,因此我想选择“其他”。 但是所有单选按钮均显示为灰色。 那是因为我还没有配置同意屏幕。 如果您专注于单选按钮选择,那么这很容易错过; 在右上角。 点击那个。

沙龙·马克斯(IDG)

选择应用程序类型之前,请不要忘记配置您的同意屏幕。

您的电子邮件地址应该已经在同意屏幕中。 唯一的其他要求是应用程序的名称。 您可以随便叫它。

吉姆说,其余的默认设置都可以,请向下滚动并保存。 现在,您应该能够选择其他应用程序类型,为应用程序命名,然后单击创建。

然后,控制台应为您提供客户端ID和客户端密码。 您可以根据需要将它们添加到R环境中来使用它们。 但是Jim建议改为下载JSON文件。 您可以将其下载到R项目的工作目录,并记住为其指定的文件名。

沙龙·马克斯(IDG)

您可以使用Gmail API凭据下载JSON文件。

这样就完成了Google方面的设置,终于可以使用一些R代码了。

首先,请确保您已安装gmailr软件包。 它在CRAN上可用,因此您可以使用install.packages("gmailr") 。 然后使用library(gmailr)在脚本中加载包。

在执行其他操作之前,您需要设置工作的R会话以使用下载的JSON凭证文件。 您可以使用use_secret_file()函数,并将JSON文件的名称作为参数来执行此操作。 如果我调用JSON凭证文件DoMoreWithR.json,则命令为

use_secret_file("DoMoreWithR.json")

实际上,发送消息非常容易。

对于某些示例数据,我下载了美国的每月失业率,然后创建了一个名为lasts_msg的文本字符串,其中包含有关最新失业率的信息。 请注意,在下面的代码中,我使用胶水包来组装我想要的消息字符串,但这是因为我喜欢这样做。 paste()paste0()同样有效。

您可以在电子邮件中使用任何R生成的数据。 如果您想跟我一起学习,请参考以下代码(您需要安装pacman软件包):

pacman::p_load(quantmod, glue, xts, dplyr, ggplot2)
getSymbols("UNRATE", src="FRED")unemployment <- coredata(UNRATE)month_starting <- index(UNRATE)series_length <- length(unemployment)
latest_msg <- glue("The latest US unemployment rate was {unemployment[series_length]}, in the month starting {month_starting[series_length]}. That's {unemployment[series_length] - unemployment[series_length - 1]} percentage points difference from the prior month.")

接下来,我想创建一个MIME电子邮件对象,然后添加一个to地址,一个from地址,主题文本和我的消息正文。

my_email_message <- mime() %>%  to("some_email_address@somedomain.com") %>%  from("domorewithr@gmail.com") %>%  subject("My test message") %>%  text_body(latest_msg)

如果执行此操作,然后使用str(my_text_message)检查my_email_message的结构,您会看到它是一个带有mime类的列表。

创建MIME消息对象后,可以使用send_message()函数发送它。 该参数只是我的MIME对象的名称,在本例中为my_email_message。 所以在这种情况下的完整命令是

send_message(my_email_message)

第一次运行send_message()时,可能会询问您是否要在R个会话之间缓存授权。 我建议你说是的。 首次运行此程序时,还会在浏览器中要求您授权R脚本使用您的Google帐户。

您可以使用gmailr做更多的事情。 一种选择是创建HTML消息,因此您可以使用粗体和斜体之类的标记。

在这里,我的消息正文包括类似HTML的段落标记以及粗体和斜体,然后将其发送到我的工作地址。

html_msg_text <- glue("<p>The latest US unemployment rate was<b>{unemployment[series_length]}</b>, in the month starting {month_starting[series_length]}. That's {unemployment[series_length] - unemployment[series_length - 1]} percentage points difference from the prior month.</p><p><i>Data from the U.S. Bureau of Labor Statistics.</i></p>")
my_html_message <- mime() %>%  to("sharon_machlis@idg.co") %>%  from("domorewithr@gmail.com") %>%  subject("My test message") %>%  html_body(html_msg_text) 
send_message(my_html_message)

不幸的是,我不知道一种将R生成的图像直接直接包含在消息正文中的方法。 但是,将其中一个作为附件非常简单。

在下面的脚本顶部,我将失业率数据转换为具有2000年及以后版本的指标的数据框,因此可以使用ggplot对其进行图形处理,然后将图形保存到文件中。

不过,代码的下一部分是了解电子邮件的重要内容。 首先,像以前一样,我使用胶水包为我的消息文本创建文本字符串。 新功能是创建我的MIME对象的最后两行代码。 最后一行attach_file()将我的PNG文件附加到电子邮件中。 如果希望文本显示在电子邮件正文中,则前一行很重要。 如果不同时使用text_body() attach_part()作为正文文本,则附加文件时文本不会显示。 只是要记住的东西。

然后,我可以使用相同的send_message()函数发送它。

un_df <- data.frame(month_starting, unemployment) %>%  filter(month_starting >= as.Date("2000-01-01")) %>%  rename(unemployment = UNRATE)
mygraph <- ggplot(un_df, aes(month_starting, unemployment)) +  geom_line() +  ggtitle("US Monthly Unemployment") +  xlab("Month Starting") +  ylab ("")
ggsave("unemployment_graph.png")
msg_text <- glue("The latest US unemployment rate was {unemployment[series_length]}, in the month starting {month_starting[series_length]}. That's {unemployment[series_length] - unemployment[series_length - 1]} percentage points difference from the prior month. A graph of the data since January 2000 is attached.")

message2 <- mime() %>%   to("sharon_machlis@idg.com") %>%   from("domorewithr@gmail.com") %>%   subject("My text message with attached graph") %>%   text_body(msg_text) %>%   attach_part(msg_text) %>%   attach_file("unemployment_graph.png")
send_message(message2)

如果需要,可以在发送Gmail之前使用函数create_draft()在Gmail帐户中创建草稿邮件。 在这种情况下, create_draft(message2)将创建我的文件附件消息的草稿。

如果您想了解所有操作的效果,请查看本文顶部的视频。 有关R的更多技巧,请访问InfoWorld上的“用R做更多视频”视频页面,或查看“用R做更多YouTube”播放列表 。

翻译自: https://www.infoworld.com/article/3398701/how-to-send-email-from-r-and-gmail.html

如何发送gmail邮件

如何发送gmail邮件_如何从R和Gmail发送电子邮件相关推荐

  1. java发送gmail邮件_如何从R和Gmail发送电子邮件

    java发送gmail邮件 在您的R人生的某个时刻,您可能希望与不使用R的同事共享分析结果. 有很多方法可以做到这一点. 最简单(也是最便宜)的方法之一是通过电子邮件发送结果. 但它是一种悲哀自动化您 ...

  2. java发送hotmail邮件_如何使用Gmail、Yahoo或Hotmail通过Java应用程序发送电子邮件?...

    首先下载JavaMail API并确保相关的JAR文件在您的类路径中. 下面是一个使用Gmail的完整示例.import java.util.*;import javax.mail.*;import  ...

  3. php发送 日历邮件_如何阻止垃圾邮件发送者攻击您的Google日历

    php发送 日历邮件 Spammers have found a way to add unwanted phishing and scam events to people's Google Cal ...

  4. java发送outlook邮件_通过Java代码发送OutLook邮件

    准备 我们想通过Java代码实现发送OutLook邮件,必须准备以下材料: OutLook邮箱 目标邮箱 查看OutLook邮箱信息 打开OutLook邮箱,在Settings中搜索或找到SMTP: ...

  5. python发html邮件_在python中如何制作发送HTML格式的邮件?

    邮件的设计和制作,作为邮件营销的重要环节,直接影响着一次营销活动转化.我们知道,不同的邮件客户端有不同的解析规则.一封设计精美的邮件,如果Html格式不规范,在客户端显示的效果往往会大打折扣.所以,如 ...

  6. java发送图片邮件_使用javamail发送包含图片的html格式邮件详解

    使用JavaMail可以很方便的发送html格式的邮件,只需要将content-type设置为"text/html"即可.要在邮件中包含图片简单办法是使用image标签,src指向 ...

  7. 给国外教授发邮件_如何给您的教授发送电子邮件并获得快速回复

    给国外教授发邮件 Photo by uniinnsbruck 图片来自uniinnsbruck Professors are some of busiest people around. They h ...

  8. java发送hotmail邮件_利用javamail收取Hotmail的退信

    利用javamail收取Hotmail的退信 (2007-04-05 23:44:19) Hotmail 是我最常用的Email Client.虽然时下hotmail的容量是小了些,速度也常常慢得让人 ...

  9. java 邮件发送 多人_使用JavaMailSender向多人发送个性化邮件

    我认为你想要达到的是有一些矛盾.根据你的问题,假设不同的人会收到一封带有"收件人:"列表的电子邮件,显示多个收件人,例如收件人:Abc.xyz.但是,他们每个人都有显示自己名字的电 ...

  10. python发送notes邮件_使用python 驱动 lotus notes发送邮件 | 学步园

    因为最近做buildbot,想要使用公司的邮件系统 lotus notes发送邮件,但是网上一直没有比较完整的例子,都是vb的例子比较多,或者例子不完整,后来看到一个用visual foxpro 做的 ...

最新文章

  1. vue 表格左右拖拽调整列宽_解决 | iview低版本实现表格拖拽,滚动条列宽计算问题...
  2. git的一些知识梳理以及命令操作
  3. JEPLUS学习心得之请假单功能的完成——JEPLUS软件快速开发平台
  4. 推荐一款好用的redis客户端工具
  5. 万能makefile深入浅出- 第一篇
  6. 深度学习(21)神经网络与全连接层四: 输出方式
  7. CF802O-April Fools‘ Problem(hard)【wqs二分,优先队列】
  8. WINCE应用的UI实现方案
  9. 设置环境变量的三种方法【转载】
  10. [DFS] [BFS] poj1979 poj3009 poj3669
  11. Junit介绍与实现
  12. golang笔记(1)-数据库查询结果映射至结构体
  13. HBase编程 API入门系列之delete.deleteColumn和delete.deleteColumns区别(客户端而言)(4)...
  14. verifycode.php,verifycode.php
  15. 本地文件上传到github
  16. Codeforces Round #766 (Div. 2)C. Not Assigning
  17. Excel 轻松制作 二级联动 下拉列表清单
  18. 2020/7/17 积分不等式/反常积分/定积分应用
  19. Java中String转为Long
  20. Liferay Portal 7.2 CE GA1 发布

热门文章

  1. 以太网协议 | ARP协议详解-ARP报文结构解析
  2. 外企计算机英语,职场英语:外企生存十大必备英语词汇
  3. Zap之日志记录器选择
  4. java中alt_eclipse中alt+/的作用
  5. 【业务安全06】接口参数账号修改漏洞——基于metinfov4.0平台
  6. 不同局域网内进行网络连接的建立方法
  7. 如何使用CSS绘制奥运五环标志
  8. Web前端面试 面试官常问问题
  9. 【筹码分析】改版通达信PAVE筹码引力分析个股强势区和走势
  10. boos里的AHCI RAID_如何用Intel主板集成的RAID控制器(Intel RST)实现硬盘提速与硬盘数据恢复...