使用mailR包从R发送邮件时收到错误

时间:2018-10-31 06:45:33

标签: r sendmailr

我正在尝试使用 mailR 软件包从R发送邮件,但收到错误消息。

我的代码:

subject <- "Montly Report"
today<-Sys.Date()
fileName <- sprintf('./DailyReports/LaunchDaily_%s.html', format(today, format = "%d-%m-%y"))
body <- "Testing Document"

send.mail(from = from,
          to = to,
          cc = cc,
          bcc = bcc,
          subject = subject,
          attach.files = fileName,
          html = T,
          inline = T,
          body = body,
          smtp = list(host.name = "smtp.gmail.com", port = 465, 
                      user.name = "email id",            
                      passwd = "password", ssl = TRUE),
          authenticate = T,
          send = T
)

和错误:

Error in .jnew("org.apache.commons.mail.ImageHtmlEmail") : 
  java.lang.NoClassDefFoundError: javax/activation/DataSource

我也尝试在 google github 中进行搜索,但没有获得有关问题的解决方法。

注意:Link我已经通过链接并尝试了代码,但对我不起作用。

系统操作系统:Ubuntu 18.04, R Studio:1.1.456

2 个答案:

答案 0 :(得分:0)

由于Java版本错误而引起的问题。

对于Ubuntu用户,需要安装Oracle Java而不是JDK版本,并且需要正确设置主目录路径。

然后,一定要确保Google帐户设置不那么不安全才能“打开”。

在终端中设置java..type

sudo add-apt-repository ppa:webupd8team/java
sudo apt update; sudo apt install oracle-java8-installer
javac -version

输出

java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

并使用rJava在R中像Java路径一样正常测试一次

尝试在

下运行
library(rJava)
library(mailR) 

如果两个库都可以正常运行,则 JAVA 正常运行。

成功消息:

在r会话中完成发送邮件后,您将收到如下消息:

[1] "Java-Object{org.apache.commons.mail.ImageHtmlEmail@32709393}"

注意:

尝试在Ubuntu本身中正确安装和设置路径时要小心。

答案 1 :(得分:0)

基本上,您想避免这种依赖性错误。我建议放弃软件包mailR,而推荐使用emayili,这不会引起此类问题。

emayili GitHub page