3

我浏览了整个网站,但找不到答案。

我需要使用 R 通过我的作品 Outlook 电子邮件发送电子邮件。它必须来自 Outlook,而不是其他任何地方。

问题是,我使用的计算机是 OSX,所以RDCOMClient无法工作。

编辑:试过这个,它不会工作。

sender<-"myemail@outlook.com"
recipients<-c("myemail@outlook.com")
send.mail(from = sender, to = recipients,
          subject = "Test",
          body = BodyOfMessage,
          smtp = list(host.name = "smtp-mail.outlook.com"),
          authenticate = FALSE,
          html = TRUE,
          send = TRUE)Does anyone have a workaround? 

它导致了这个错误:

org.apache.commons.mail.EmailException:将电子邮件发送到以下服务器失败:smtp-mail.outlook.com:25 at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1410) at org. apache.commons.mail.Email.send(Email.java:1437) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl。在 RJavaTools.invokeMethod(RJavaTools.java:386) 的 java.lang.reflect.Method.invoke(Method.java:498) 处调用(DelegatingMethodAccessorImpl.java:43) 由:com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.57 SMTP;在 MAIL FROM [BN6PR19CA0117.namprd19.prod.outlook.com] 期间,客户端未通过身份验证发送匿名邮件

在 com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2202) 在 com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1693) 在 com.sun.mail.smtp.SMTPTransport.sendMessage (SMTPTransport.java:1194) 在 javax.mail.Transport.send0(Transport.jaNU​​LL va:254) 在 javax.mail.Transport.send(Transport.java:124) 在 org.apache.commons.mail.Email.sendMimeMessage (Email.java:1400) ... 6 更多错误:EmailException (Java):将电子邮件发送到以下服务器失败:smtp-mail.outlook.com:25

4

2 回答 2

1

因此,您不一定要通过 Outlook 客户端发送此信息,这就是 Outlook 的全部功能。您可能希望允许您编写的 R 脚本和使用的库成为电子邮件客户端。我使用 mailR 取得了很大的成功。有些人喜欢 sendmailR 来发送消息。他们都有自己的优势。如果您从主机运行大量脚本,您的电子邮件管理员可能会允许未经身份验证的发送。或者您可以在脚本中进行身份验证。例如:

library(mailR)
#################
# Generate Spam #
#################
BodyOfMessage <- paste("<html><body><p>Hello,</p><p>This is an email message.</p>
                      <hr>
                      <p>The second table is a list of users that need to be toggled in the system, by adding them to the correct securitygroup.</p>
                      <p>", toggle.these.people, "</p>
                      <p>Scott</p></body></html>")
#mailR
    sender<-"fromwho@fromyou.org"
    recipients<-c("emailtosendto@email.com")
    send.mail(from = sender, to = recipients,
    subject = paste("Blah. Created: today.", sep = ""),
    body = BodyOfMessage,
    smtp = list(host.name = "smtp.exchangeserver.org"),
    authenticate = FALSE,
    html = TRUE,
    attach.files = CSVFileNameIs,    
    send = TRUE)
于 2018-04-04T00:30:50.270 回答
0

这就是我使用的,它对我来说很好用。

library(RDCOMClient)
## init com api
OutApp <- COMCreate("Outlook.Application")
## create an email 
outMail = OutApp$CreateItem(0)
## configure  email parameter 
outMail[["To"]] = "ryanshuell@gmail.com"
outMail[["subject"]] = "some subject"
outMail[["body"]] = "some body"
## send it                     
outMail$Send()
于 2018-04-05T03:31:49.733 回答