3

我正在尝试使用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

我也尝试在googlegithub中搜索,但没有解决问题。

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

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

4

3 回答 3

1

由于 Java 版本错误不匹配而引发问题。

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

然后谷歌帐户设置肯定需要不那么安全才能“打开”。

在终端中设置 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)

并在 R 中测试一次,例如 java 路径是否正常工作rJava

尝试在库下运行

library(rJava)
library(mailR) 

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

成功留言:

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

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

笔记:

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

于 2018-11-01T06:14:00.127 回答
1

基本上,您想避免这种依赖错误。我建议放弃 tha 包mailR以支持emayili不会导致此类问题的包。

ebayili GitHub页面

于 2020-06-18T07:52:20.783 回答
0

javax.activation(Java Activation Framework (JAF))已从 Java 9 的核心 JRE 包中删除。该sendR库是针对 Java 8 构建的。您很可能使用没有 JAF 的较新版本的 Java。

三个选项:

  • 使用 Java 8
  • JAF jar添加到您的类路径
  • 使用不同/更好/更新的电子邮件库,理想情况下甚至不依赖 Java,例如emayili

第三个是我的建议。

于 2021-09-25T01:41:50.900 回答