作者 | 二缺叶枫

来源 | 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服务开启设置处。

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

在开通了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}"

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

此外还可以添加附件:设置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,则不会发送

)

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

https://github.com/rpremraj/mailR

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

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

往期精彩:

  • 美国“实体清单”再度升级,我国超级计算机今日起或面临“断供”!

  • 我造的假我自己打,Adobe推出“反PS”

  • 微软删除人脸识别,除了隐私,更重要的可能是性别歧视与种族主义

mailR:利用R语言发邮件相关推荐

  1. 只能发邮件不能接受_《GTA5》R星发邮件问候玩家会发生什么?以下操作一个也别碰...

    GTA5是一款被神仙毁掉的游戏,当然这里指的是线上模式,当你正想要去线上干一番大事的时候,却被神仙玩家搞的心态全无,其实很多玩家都有同样的遭遇,面对这种情况我们只能默默的点开举报,然后静静的等待即可, ...

  2. 利用R语言对泰坦尼克号沉没事件幸存者的数据分析与预测

    题外话:在文章正式开始之前,我还是想先写一点题外话,一是为了引出写作这篇博客的目的,二则是希望能够记录下现在的所思所想为以后留个纪念.首先介绍一下自己,毕业3年多的小硕一枚,大学期间学的专业是高分子材 ...

  3. 利用R语言画简单时间序列图

    R 语言无法自动将读取的数据转化为时间序列格式, 所以利用R语言画时间序列图的一个关键步骤就是将读取的数据转变为时间序列格式, 下面是一个简单的程序: # 读取数据, 首先将excel 格式的转化为 ...

  4. 利用R语言对贷款客户作风险评估

    利用R语言对贷款客户作风险评估(上)--数据分析 前言 风险控制能力越来越成为互联网金融行业的隐形门槛,为风控人员提供显著地风险评估依据变得非常重要.本文以银行客户的信用卡信息为案例数据,对数据进行分 ...

  5. 利用R语言对贷款客户作风险评估(下)——零膨胀回归分析

    利用R语言对贷款客户作风险评估(下)--零膨胀回归分析 前言 上一篇的分类预测是决定好坏客户的初步判断, 不足以直接决策, 因此还需要进一步分析. 通过随机森林, 对影响好坏客户的解释变量的重要性进行 ...

  6. 利用R语言irr包计算ICC值(组内相关系数)

    ICC值是一个较为陌生的概念,在统计学中应用较多,引用百度百科的介绍: 组内相关系数(ICC)是衡量和评价观察者间信度(inter-observer reliability)和复测信度(test-re ...

  7. 利用R语言进行线性/非线性回归拟合实例(1)

    利用R语言进行线性/非线性回归拟合实例(1) 1. 生成一组数据 vector<float>xxvec; vector<float>yyvec; ofstreamfout(&q ...

  8. 利用R语言制作好看的Meta分析文献偏倚风险图

    在<Meta踩坑集>里,向大家分享了使用RevMan进行基本的文献偏移风险图是如何制作的.在很多文献里,我们看到的偏倚风险图都长这样: 但也有的文献偏移风险图长这样: 那这些花里胡哨,看起 ...

  9. 【问题导向】利用R语言进行情感分析

    目录 前言 问题分析 R语言的安装 情感分析 分类的原理 未来学习计划 引文 前言 R语言是统计领域的一个重要工具,其中有很多独特的包能够实现特定功能,在进行GIS分析时有非常大的用处. 笔者最近在帮 ...

  10. java集成r语言_R语言- 实验报告 - 利用R语言脚本与Java相互调用

    一.实训内容 利用R语言对Java项目程序进行调用,本实验包括利用R语言对java的.java文件进行编译和执行输出. 在Java中调用R语言程序.本实验通过eclipse编写Java程序的方式,调用 ...

最新文章

  1. ajax eval html,Ajax eval的应用示例
  2. oracle varchar2转date_5分钟学会精算师常用Oracle语句
  3. Java笔记-使用RabbitMQ的Java接口实现Publish/Subscribe(订阅模式)
  4. 自己动手、丰衣足食!面试表
  5. Cesium开发基础篇 | 03加载矢量数据
  6. excel单元格内回车换行
  7. 华为游戏中心登录无法连接服务器,如何电脑登陆华为账号登录不了游戏
  8. Android 仿今日头条视频播放器实现(不使用节操哟)
  9. 广播发射系统的安装调试维护——TFN T300F天馈线驻波比测试仪手持矢量网络分析仪
  10. 静态代码分析工具-CasePlayer2
  11. 安卓手机客户端与服务器纯纯socket实现文件下载+断点续传
  12. 手把手教你修改Firefox的User-Agent伪装Android微信浏览器
  13. Linux远程连接服务器
  14. 浅聊下Spring Task定时器的Cron表达式
  15. 成都信息工程大学计算机导师,硕士生导师 华 维-成都信息工程大学大气科学学院 School of Atmospheric Sciences,CUIT...
  16. 我去微信找师弟,问他的「编程能力」从什么时候开始突飞猛进的?
  17. 软件智能:aaas系统 度量衡及文法规则
  18. yukon worknote
  19. Codeforces Round #819 (Div. 1 + Div. 2) D题解
  20. 学摄影:三分钟了解直方图

热门文章

  1. thrift 学习 了解
  2. python2和python3的编码区别
  3. 再见!RESTful...
  4. 技术出身要创业,容易吗?
  5. BGP超级失误:Verizon 搞垮 Cloudflare 和 AWS 等巨头,导致“连锁灾难性故障”
  6. 【机房运维】网格机房机柜、机架内的空间规划及理线方法
  7. Google 发布全新绘画工具 AutoDraw
  8. jdbc编程遇到文件上传
  9. c#结构体与类的区别
  10. 关于JSP post请求乱码的问题