专栏名称: 表哥有话讲
国内最大的R语言专业学习平台| R官方认证学习实践社区--校企实践交流、名企内推和成果分享,立即关注-掌握R语言全球最新资讯与成果!
目录
51好读  ›  专栏  ›  表哥有话讲

亲,你有一封邮件待查收

表哥有话讲  · 公众号  ·  · 2017-09-13 11:50

正文

作者:数据取经团——祥子

数据取经团(公众号: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  # 测试

)



咦,好几处注释,都快看不懂了,赶快来解释下。小编觉得,有三处需要说明下。

  1. 发送服务器    这个要根据你的使用的邮箱发送服务器来设置了。例子中以腾讯企业邮箱为例的。

  2. 端口号   常用的邮箱的端口号可以查到的。对于特征的端口号,需要咨询你所在公司的运维了

  3. 授权码    对,这个很重要。以smtp作为发送邮件服务的,是可以拿到授权码的。以腾讯企业号获取授权码为例子说明。


以腾讯企业号获取授权码为例子说明。


注意事项


将最后的授权码贴到passwd位置。这样就拿到授权码了。小编反复实验,觉得有以下几点是需要注意的:

  1. 你所在的公司是否关闭了465端口,若是关闭了,那是没法发送的;

  2. JAVA配置是否成功了;

  3. 在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机器学习入门