如何发送电子邮件有R和Gmail

信息世界|2019年6月5日

查看如何使用R编程语言和Gmail自动发送电子邮件。

版权©2019Raybet2

你好。我莎朗马克利斯在IDG通信,这里做一集28多与R:从Gmail中的[R脚本发送电子邮件。
在你生活中的某个时刻,你可能想要与没有使用R语言的同事分享你的分析结果。有很多方法可以做到这一点。最简单(也是最便宜)的方法之一就是通过电子邮件发送你的搜索结果。
但它的那种悲伤自动化您的整个分析流程,然后必须手动发送电子邮件。幸运的是,你不必。有迹象表明,让你直接发送从R脚本电邮几个R封装。在这一集里,我将演示其中的一个:由吉姆·赫斯特,谁现在是在RStudio的软件工程师gmailr。
显然,你需要一个Gmail账户,如果你没有的话,这个账户是可以免费设置的。然后,在使用该帐户之前,需要将其设置为API访问。这是如何。
去控制台。开发者。谷歌。com。是的,这是一个子域名:console.developers.google.com。
在顶部,您应该看到“启用api和服务”选项。“点击。
接下来,您需要搜索gmail API。单击它,然后单击Enable。如果您的帐户中还没有任何项目,您可能需要添加一个。我已经有一个叫用R做更多。
我们需要凭据,因此我将单击右上角的Create credentials。根据Jim Hester的指示,我们需要一个客户ID,所以我将选择OAuth客户ID。
现在它要求应用程序类型。由于“R脚本”不在这里,我想选择“其他”。但是所有的单选按钮都是灰色的。别担心,那是因为我们还没有配置好同意屏幕。这很容易被忽略,请看右上角。点击它。
您的电子邮件地址应该是在形式了。其他唯一的要求是应用程序的名称。毫无疑问,我会说做更多的R.
Jim说其余的默认设置都没问题,所以我将向下滚动并保存。现在我可以选择应用程序类型Other,给它一个名称,然后单击Create。
你会得到你的客户ID和客户机密。(如果你想知道我为什么让你看这些-一个非常糟糕的安全实践-那是因为我将删除这些凭据之前,你看到这个视频。)
如果需要,您可以通过将客户端ID和secret添加到R环境中来使用它们。但是Jim建议下载json文件。我将它下载到我的工作目录中,并将其命名为,是的,DoMoreWithR.json。
OK,在谷歌方面的设置完成!现在时间对于一些R代码里面。
首先,确保您已经安装了gmailr包,它可以在CRAN上使用。加载库。在进行其他操作之前,您需要设置工作会话以使用下载的json凭据文件。使用use_secret_file()函数执行此操作,并将文件的名称作为参数。
实际上发送消息是最简单的部分!
在这里,我下载了每月的美国失业率,然后创建了一个名为latest_msg的文本字符串,其中包含最新失业率的信息。对于纯文本电子邮件消息,我想创建一个“mime”对象,然后添加一个to地址、一个from地址、主题文本和我的消息正文。
如果我检查my_text_message的结构 你可以看到它是一个列表,而类是哑剧。
对于这个测试,我将通过domorewithr@gmail.com发送一条消息给我自己。
创建mime消息对象后,我可以使用send_message()函数发送它。这个参数就是我的mime对象的名称,在本例中是my_email_message。
当您运行send_message()的第一次,你将有可能如果你想的R会话之间的缓存授权问。我建议你说的是。由于我是前面说的,我不会要求您重新登录到我的谷歌帐户。当您第一次尝试这个,你可能会在你的浏览器要求授权您的[R脚本中使用您的谷歌帐户。
还有更多你可以用这个做。一种选择是创建一个HTML邮件,这样你就可以使用标记像粗体和斜体。
在这里,我的消息体包括HTML,如段落标记和粗体和斜体。我会将它发送到一个外部电子邮件账户DoMoreWithR@machlis.com。
不幸的是,我不知道如何将直接从R生成的图像包含到消息体中。但是把一个作为附件是很简单的。
在这个脚本的顶部,我将失业率数据转换为2000年及以后的数据框架,因此我可以使用ggplot来绘制它,然后将图形保存到文件中。
这接下来的部分是要知道电子邮件什么是重要的。首先,像以前一样,我创建了与胶包我的消息文本的文本字符串。您可以使用粘贴或paste0,太多,但我像胶水。有什么新的代码的最后两行创建我的MIME对象。最后一行,attach_file(),重视我的PNG文件的电子邮件。如果您希望文本在电子邮件正文中显示的前行是很重要的。如果不使用这两种text_body()和attach_part()的正文文本,它不会显示出来,当你附加文件。只是要记住。
现在我可以像往常一样使用send_message发送它 如果你愿意,你可以使用函数create_draft()而不是send_message(),如果你想在你的Gmail帐户创建消息草稿。然后查找该草案>。
有你有它:从R脚本电子邮件。这是它为这个情节,感谢收看!对于以上R提示,头向做多有R在页面去点InfoWorld的点com削减更多的与R,除了R.你也可以找到做多配合YouTube IDG技术讲座槽R播放列表全部小写。期待您的下一集!
受欢迎的
从IDG.tv精选视频