热门标签 | 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



推荐阅读
  • 在前文探讨了Spring如何为特定的bean选择合适的通知器后,本文将进一步深入分析Spring AOP框架中代理对象的生成机制。具体而言,我们将详细解析如何通过代理技术将通知器(Advisor)中包含的通知(Advice)应用到目标bean上,以实现切面编程的核心功能。 ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • 在使用 Qt 进行 YUV420 图像渲染时,由于 Qt 本身不支持直接绘制 YUV 数据,因此需要借助 QOpenGLWidget 和 OpenGL 技术来实现。通过继承 QOpenGLWidget 类并重写其绘图方法,可以利用 GPU 的高效渲染能力,实现高质量的 YUV420 图像显示。此外,这种方法还能显著提高图像处理的性能和流畅性。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • 线程能否先以安全方式获取对象,再进行非安全发布? ... [详细]
  • 利用ZFS和Gluster实现分布式存储系统的高效迁移与应用
    本文探讨了在Ubuntu 18.04系统中利用ZFS和Gluster文件系统实现分布式存储系统的高效迁移与应用。通过详细的技术分析和实践案例,展示了这两种文件系统在数据迁移、高可用性和性能优化方面的优势,为分布式存储系统的部署和管理提供了宝贵的参考。 ... [详细]
  • Java中不同类型的常量池(字符串常量池、Class常量池和运行时常量池)的对比与关联分析
    在研究Java虚拟机的过程中,笔者发现存在多种类型的常量池,包括字符串常量池、Class常量池和运行时常量池。通过查阅CSDN、博客园等相关资料,对这些常量池的特性、用途及其相互关系进行了详细探讨。本文将深入分析这三种常量池的差异与联系,帮助读者更好地理解Java虚拟机的内部机制。 ... [详细]
  • 在腾讯云服务器上部署Nginx的详细指南中,首先需要确保安装必要的依赖包。如果这些依赖包已安装,可直接跳过此步骤。具体命令包括 `yum -y install gcc gcc-c++ wget net-tools pcre-devel zlib-devel`。接下来,本文将详细介绍如何下载、编译和配置Nginx,以确保其在腾讯云服务器上顺利运行。此外,还将提供一些优化建议,帮助用户提升Nginx的性能和安全性。 ... [详细]
  • 在IIS上运行的WebApi应用程序在开发环境中能够正常进行文件的读写操作。然而,在尝试通过FTP访问实时服务器上的文件列表时,遇到了无法显示的问题,尽管服务器配置与开发环境相同。这可能涉及权限设置、FTP服务配置或网络连接等方面的问题。 ... [详细]
  • 深入解析 Unity URP/SRP 渲染管线:匠心打造的全面指南
    本文深入探讨了Unity中的URP、SRP和HDRP渲染管线,详细解析了它们之间的关系及各自的特点。首先介绍了SRP的基本概念及其在Unity渲染架构中的作用,随后重点阐述了URP和HDRP的设计理念与应用场景。文章还分析了SRP诞生的背景,解释了为何Unity需要引入这一灵活的渲染框架,以满足不同项目的需求。通过对比URP和HDRP,读者可以更好地理解如何选择合适的渲染管线,以优化项目的性能和视觉效果。 ... [详细]
  • 在 Go 开发环境中,通过使用 iTerm 和 Oh My Zsh,可以显著提升终端操作的效率和体验。Oh My Zsh 是一个强大的 Zsh 配置管理框架,提供了丰富的插件支持,如代码高亮、自动补全和多种编程语言支持,同时还拥有众多美观的主题,使终端界面更加个性化和高效。Zsh 作为一种高度可定制的 shell,不仅适用于交互式应用,还可用作脚本解释器,集成了 bash、ksh 和 tcsh 等其他 shell 的诸多优点,并具备独特的功能特性。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 在CentOS 7上部署WebRTC网关Janus
    在CentOS 7上部署WebRTC网关Janus ... [详细]
  • 2023版Mac中文Photoshop下载:专业图像编辑软件PS Mac版最新资源
    2023版Mac中文Photoshop下载:专业图像编辑软件PS Mac版最新资源 ... [详细]
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社区 版权所有