使用mailR包通过R通过Outlook发送经过身份验证的邮件

时间:2018-10-30 23:50:02

标签: r outlook smtp

如何通过Outlook从R发送邮件?

有人告诉我使用sendmailR软件包,但我不知道如何指定certain control settings(例如端口,用户名和密码)。我也被重定向到this post,但没有帮助。

我切换到mailR软件包。我可以从其他服务器(例如smtp.gmail.com)发送邮件,但是我不知道Outlook服务器的详细信息。使用mailR通过Outlook发送邮件需要什么协议,服务器和端口详细信息?

2 个答案:

答案 0 :(得分:1)

这花了我一段时间才能弄清楚。试试这个:

send.mail(from = "username@custom.org",
          to = c("recipient1@custom.org", "recipient2@custom.org"),
          subject = "Title",
          body = "Hello from R.",
          authenticate = TRUE,
          smtp = list(host.name = "smtp.office365.com",
                  port = 587,
                  user.name = "username@custom.org",
                  passwd = "Pa55w0rd",
                  tls = TRUE))

一个常见的误解是端口是25或447。我相信端口25只能在authenticate = FALSE时使用。

许多消息来源声称正确的服务器是smtp-mail.outlook.com。如果代码不起作用,也许您可​​以尝试这样做。此外,请勿使用ssl = TRUE。它必须是tls = TRUE

对Rahul Premraj对this archived 2014 question的回答大声疾呼。

答案 1 :(得分:1)

或者您可以使用DescTools::SendOutlookMail()

library(DescTools)
SendOutlookMail(to = c("me@microsoft.com", "you@rstudio.com"), 
                subject = "Some Info", 
                body = "Hi all\r Find the files attached\r Regards, Dude", 
                attachment = c("C:/temp/fileA.txt", 
                               "C:/temp/fileB.txt"))