作者:数据取经团——祥子
数据取经团(公众号:zlx19930503)专注R、Python数据分析挖掘、可视化、机器学习
前言
自动化操作,定时来执行任务,替代人力不可为或很麻烦的事情。在很多互联网公司,自动化已经是很常见的。对于个人而言,我们也可以有自动化操作的,本文将介绍在windows下实现R语言自动执行发邮件的任务。是不是有新奇感,那就跟着小编来往下看。
自动化操作?是不是要编写代码什么的鬼,我是文科生,没学过编程,更是看不懂R语言,这门槛太高,好像我们没法使用了?哈哈,放心,它很简单,你需要按照我们的文章步骤来操作,一步步的设置好,就可以完成设置啦,然后把我们代码按照提示稍作修改,你可以用它来发送你的日常邮件。试试看,是否感觉到很神奇,那就跟着我们的步骤来操作一遍。你也是大牛一枚。
步骤如下
1、环境变量设置
设置JAVA虚拟机环境。这里需要安装java软件,http://rj.baidu.com/soft/detail/14459.html?ald,下载好,直接点击下一步,不要修改安装目录。点击桌面电脑,右键,系统属性,找到高级系统设置,进入环境变量,在系统变量中添加JAVA_HOME,具体操作可百度一下,网上有很多详细的文章描述。当然,若是有疑问,也建议留言喔。还有,这里的java安装成功与否对后面有很大的影响的。
2、R语言软件安装
哈哈,用R语言发送邮件,当然需要安装R语言软件啦。https://mirrors.tuna.tsinghua.edu.cn/CRAN/,进入网站,直接点击下载R语言啦,快去试试,小编从不骗人。
3、R包之Rmail下载
用到的包: Rmail ,通过install.packages(“Rmail”)
4、最后一步:发邮件
来啦,很重要的一步,发送邮件环节,先贴上代码。
library(mailR)
send.mail(
from = (''), # 发送邮箱
to = c(''), # 接收邮箱
cc = c(""), #抄送
subject = 'this is test', # 主题
body = 'hello world', # 正文
encoding = 'utf-8',
html = TRUE,
smtp = list(
host.name = 'smtp.exmail.qq.com', # 发送的服务器
port = 465, # 端口号
user.name = '', # 发送邮箱
passwd = 'Mya4mFd85waaBNmf', # 授权码
ssl = TRUE,
tls = TRUE),
authenticate = TRUE,
send = TRUE,
#attach.files = "C:\\Users\\zzzzzz\\Desktop\\提数的代码.txt", # 附件
#file.names = c("文件名"), # 文件名
#file.descriptions = c("文件描述"),
debug = FALSE # 测试
)
咦,好几处注释,都快看不懂了,赶快来解释下。小编觉得,有三处需要说明下。
发送服务器 这个要根据你的使用的邮箱发送服务器来设置了。例子中以腾讯企业邮箱为例的。
端口号 常用的邮箱的端口号可以查到的。对于特征的端口号,需要咨询你所在公司的运维了
授权码 对,这个很重要。以smtp作为发送邮件服务的,是可以拿到授权码的。以腾讯企业号获取授权码为例子说明。
以腾讯企业号获取授权码为例子说明。
注意事项
将最后的授权码贴到passwd位置。这样就拿到授权码了。小编反复实验,觉得有以下几点是需要注意的:
你所在的公司是否关闭了465端口,若是关闭了,那是没法发送的;
JAVA配置是否成功了;
在Rstudio中使用的R是否与windows的型号一致,如都为32位或64位。小编使用中发现的问题:
Error : .onLoad failed in loadNamespace() for 'rJava', details:
call: inDL(x, as.logical(local), as.logical(now), ...)
error: unable to load shared object 'e:/Program Files/R/R-3.1.1/library/rJava/libs/i386/rJava.dll':
LoadLibrary failure: ?????????
In addition: Warning message:
package ‘rJava’ was built under R version 3.4.1
Error: package or namespace load failed for ‘rJava
正确的姿势为将Rstudio中R设置为32位。
我能用它干嘛呢?不是说了嘛,发邮件,可还是没想到它有啥优势?咦,发周报就是需求唷。别告诉别人。
微信回复关键字即可学习
回复 R R语言快速入门免费视频
回复 统计 统计方法及其在R中的实现
回复 用户画像 民生银行客户画像搭建与应用
回复 大数据 大数据系列免费视频教程
回复 可视化 利用R语言做数据可视化
回复 数据挖掘 数据挖掘算法原理解释与应用
回复 机器学习 R&Python机器学习入门