mailR:利用R语言发邮件

作者 | 二缺叶枫

来源 | R友舍

发送邮件可以说是在普通不过的生活场景了。但是试想一下:如果每天都需要将固定邮件发送给同一群人,那么手工去处理这样的工作实在是太无聊了,并且十分浪费时间。为何不利用R语言来完成呢?mailR包实现了在R语言环境下,通过模拟登陆邮箱发送邮件的过程。有了mailR包,发送邮件只需要几行代码,几个参数就能搞定了。本文将简单介绍maiR包的安装及基本的使用过程。

目录:

mailR简介

mailR的安装

mailR的使用

mailR简介

mailR包是Rahul Premra开发的用语R语言环境下发送电子邮件的工具包。利用mailR包,可以轻松利用R语言发送邮件,并且支持添加附件、发送HTML形式内容、插入图片、发送Markdown编译文件等,可谓方便至极。

mailR的安装

mailR包依赖于R.oo,R.methodsS3,R.utils,RJava包,因此在使用install.packages时,系统会自动将mialR包的依赖包下载安装完成。这里以MAC系统为例,介绍mailR包的安装及应用,对于Linux及windows系统,安装方法大同小异。

install.packages('mailR')

also installing the dependencies ‘R.oo’, ‘R.methodsS3’, ‘R.utils’

试开URL’https://cran.rstudio.com/bin/macosx/mavericks/contrib/3.3/R.oo_1.21.0.tgz'

Content type 'application/x-gzip' length 775447 bytes (757 KB)

==================================================

downloaded 757 KB

试开URL’https://cran.rstudio.com/bin/macosx/mavericks/contrib/3.3/R.methodsS3_1.7.1.tgz'

Content type 'application/x-gzip' length 55551 bytes (54 KB)

==================================================

downloaded 54 KB

试开URL’https://cran.rstudio.com/bin/macosx/mavericks/contrib/3.3/R.utils_2.5.0.tgz'

Content type 'application/x-gzip' length 983152 bytes (960 KB)

==================================================

downloaded 960 KB

试开URL’https://cran.rstudio.com/bin/macosx/mavericks/contrib/3.3/mailR_0.4.1.tgz'

Content type 'application/x-gzip' length 601253 bytes (587 KB)

==================================================

downloaded 587 KB

The downloaded binary packages are in

/var/folders/ms/_szt2z8d76xd8lkdn46lslv40000gp/T//RtmpGSSlqo/downloaded_packages

当控制台出现以上内容时,说明mailR已经安装完成。现在可以加载mailR包发送邮件了。

mailR的使用

library(mailR)

JavaVM: requested Java version ((null)) not available. Using Java at "" instead.

JavaVM: Failed to load JVM: /bundle/Libraries/libserver.dylib

JavaVM FATAL: Failed to load the jvm library.

Error : loadNamespace()里算'mailR'时.onLoad失败了,详细内容:

  调用: .jinit()

  错误: JNI_GetCreatedJavaVMs returned -1

如果出现上面的问题,那么请检查系统是否安装java,并且保证JAVA路径设置正确,并且成功装有Rjava包。

如果没出现上述错误的话,说明mailR包加载成功,现在可以尝试发邮件了!这里以大多数人比较熟悉的QQ邮箱为例,其它类型邮箱设置方法基本一致。

要想利用mailR发送QQ邮件,还需要先开通QQ邮箱的SMTP服务,需要手机验证生成授权码(有些邮箱无序验证)。在QQ邮箱设置处,找到POP3/SMTP服务开启设置处。

640?wx_fmt=jpeg

由于QQ邮箱SMTP服务中,第三方客户端登陆QQ邮箱均已授权码作为密码登陆(非原始密码),因此需要通过手机验证生成授权吗。此外还可以选择通过SSL加密的方式发送邮件。

640?wx_fmt=jpeg

在开通了SMTP服务,并且获取了授权码后,就可以实现第三方客户端接发QQ邮件了。

recipients <- c("12********@qq.com")  #收件人  

sender = "12********@qq.com"  #发件人 

#填上邮箱密码passwd(QQ邮箱,填写授权码), 

send.mail(  

  from = sender,  

  to = recipients ,

  subject = "Subject of the email",  #主题

  body = "Body of the email",  #内容

  encoding = "utf-8",  

  smtp = list(  host.name = "smtp.qq.com",  port = 465,  user.name = sender,  passwd = "************",ssl = TRUE  ),  #配置好SMTP参数

  authenticate = TRUE,  #选择SSL加密方式,端口为465

  send = T #发送邮件,如果为F,则不会发送

)  

[1] "Java-Object{org.apache.commons.mail.SimpleEmail@63e2203c}"

此时邮件发送成功,可以到邮箱上看看是否能查收到。

640?wx_fmt=jpeg

此外还可以添加附件:设置attach.files参数

recipients <- c("12********@qq.com")  #收件人  

sender = "12********@qq.com"  #发件人 

#填上邮箱密码passwd(QQ邮箱,填写授权码), 

send.mail(  

  from = sender,  

  to = recipients ,

  subject = "Subject of the email",  #主题

  body = "Body of the email send=T",  #内容

  encoding = "utf-8",  

  smtp = list(  host.name = "smtp.qq.com",  port = 465,  user.name = sender,  passwd = "************",ssl = TRUE  ),  #配置好SMTP参数

  authenticate = TRUE,  #选择SSL加密方式,端口为465

attach.files ='/Users/root/Desktop/emaiR_test.xlsx',   #填写附件地址

file.names=c('emailR测试文件'),  #设定附件名

  send = T #发送邮件,如果为F,则不会发送

)  

640?wx_fmt=jpeg


此外,emailR也支持发送HTML格式的邮件内容,嵌入图片、以及MARKDOWN文件等。参考内容可见mailR官方文档:

https://github.com/rpremraj/mailR

http://mirrors.xmu.edu.cn/CRAN/

——————————————

往期精彩:

640?wx_fmt=png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值