如何用R发送简单易懂的邮件

      这些天在通过预测模型跑出了不少天的数据,但是跑出来的数据如何汇报给领导呢,当然是通过邮件了,我这个人比较懒,当然不想自己每天都做这个事情了,不如写几段代码解决这个事情吧?好,就这样定下来了。
      那么用R怎么解决这个难题?我赶紧搜索了一下,发觉有两个包可以帮助我解决这个问题,我选择了其中一个字符比较短的mailR包(人比较懒,下载包的时候可以少敲键盘),开始了研究。

      根据网上的版本,我就直接把变量塞进去做了一个新版本:
library(mailR)
#body正文 
body = "钱包预测"
#收件人 
recipients <- c("[email protected]**.cc")
cc<- c([email protected]**.cc')#抄送自己是为了测试邮件格式是否正确
#发件人 
sender = "[email protected]**.cc" 
#主题 
title = "资金端每日预测" 
#填上邮箱密码code,如body是html,设置body=html参数,那么发出来的正文就是html格式的了 
send.mail( 
  from = sender, 
  to = recipients,
  cc = cc,
  subject = title, 
  body = body, 
  encoding = "utf-8", 
  html = TRUE, 
  smtp = list( 
    host.name = "smtp.exmail.qq.com", 
    port = 465, 
    user.name = sender, 
    passwd = "******", 
    ssl = TRUE 
  ), 
  authenticate = TRUE, 
  send = TRUE ,
  attach.files = c("d:/Rdata/zjd/ts/钱包.xlsx")#添加附件

      上面的邮箱以及密码需要自己填写正确,然后java编辑器要跟系统版本相同(即系统如果是32bit,jre必须也是32bit;系统如果是64bit,jre必须也是64bit),如我是64bit的windows10,下载的就是jre的windows 64位版本,要不然无法发送邮件。

       后来由于正文空无一物,我感觉邮件除了附件太空旷,于是对正文body变量做了一下优化如下:
body = paste("钱包预测</p>",as.Date(end)+1,"当日钱包(含玖加)预测整体成交为",round(sum(as.numeric(c[,2]))/10000,2),"万,其中定期成交为",round(sum(as.numeric(c[1:11,2]))/10000,2),"万,活期成交为",round(sum(as.numeric(c[12,2]))/10000,2),"万</p>",
             as.Date(end)+2,"当日钱包(含玖加)预测整体成交为",round(sum(as.numeric(c[,3]))/10000,2),"万,其中定期成交为",round(sum(as.numeric(c[1:11,3]))/10000,2),"万,活期成交为",round(sum(as.numeric(c[12,3]))/10000,2),"万</p>",
             as.Date(end)+3,"当日钱包(含玖加)预测整体成交为",round(sum(as.numeric(c[,4]))/10000,2),"万,其中定期成交为",round(sum(as.numeric(c[1:11,4]))/10000,2),"万,活期成交为",round(sum(as.numeric(c[12,4]))/10000,2),"万</p>")

      其中变量end和c都在之前的代码中涉及了,我这边是直接取模型变量,结果如图:
如何用R发送简单易懂的邮件

      这样我们就直接把附件中的数据通过邮件正文概述出来了。