热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mailR:利用R语言发邮件

作者|二缺叶枫来源|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********&#64;qq.com")  #收件人  

sender &#61; "12********&#64;qq.com"  #发件人 

#填上邮箱密码passwd(QQ邮箱&#xff0c;填写授权码)&#xff0c; 

send.mail(  

  from &#61; sender,  

  to &#61; recipients ,

  subject &#61; "Subject of the email",  #主题

  body &#61; "Body of the email",  #内容

  encoding &#61; "utf-8",  

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

  authenticate &#61; TRUE,  #选择SSL加密方式&#xff0c;端口为465

  send &#61; T #发送邮件&#xff0c;如果为F&#xff0c;则不会发送

)  

[1] "Java-Object{org.apache.commons.mail.SimpleEmail&#64;63e2203c}"

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

640?wx_fmt&#61;jpeg

此外还可以添加附件&#xff1a;设置attach.files参数

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

sender &#61; "12********&#64;qq.com"  #发件人 

#填上邮箱密码passwd(QQ邮箱&#xff0c;填写授权码)&#xff0c; 

send.mail(  

  from &#61; sender,  

  to &#61; recipients ,

  subject &#61; "Subject of the email",  #主题

  body &#61; "Body of the email send&#61;T",  #内容

  encoding &#61; "utf-8",  

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

  authenticate &#61; TRUE,  #选择SSL加密方式&#xff0c;端口为465

attach.files &#61;&#39;/Users/root/Desktop/emaiR_test.xlsx&#39;,   #填写附件地址

file.names&#61;c(&#39;emailR测试文件&#39;),  #设定附件名

  send &#61; T #发送邮件&#xff0c;如果为F&#xff0c;则不会发送

)  

640?wx_fmt&#61;jpeg


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

https://github.com/rpremraj/mailR

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

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

往期精彩&#xff1a;

  • 美国“实体清单”再度升级&#xff0c;我国超级计算机今日起或面临“断供”&#xff01;

  • 我造的假我自己打&#xff0c;Adobe推出“反PS”

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

640?wx_fmt&#61;png



推荐阅读
author-avatar
陈豪韦小宝_517
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有