发送邮件R和套接字连接

时间:2013-06-03 11:44:45

标签: r smtp sendmail sendmailr

我正在尝试使用SendMailR功能,我已经检查了我们的I.T.部门,我使用正确的服务器,我有正确的权限连接,他们已经通过此服务器发送电子邮件,但没有通过R,我也检查了端口应该是25。

代码:

# E-Mail #

library(sendmailR)

from <- "david@work.com"
to <- "adam@work.com"
subject <- "Send Mail R- Test"
body <- "TESTING TESTING TESTING"                     
mailControl=list(smtpServer="uksmtp.global.local")

sendmail(from=from,to=to,subject=subject,msg=body,control=mailControl)

我收到以下错误:

function (host = "localhost", port, server = FALSE, blocking = FALSE, 
open = "a+", encoding = getOption("encoding"), timeout = getOption("timeout")) 
.Internal(socketConnection(host, port, server, blocking, open, 
encoding, timeout))
<bytecode: 0x00000000071beb18>
<environment: namespace:base>

所以我认为它是一个错误,或者我需要定义一个新的套接字连接,问题出在哪里?任何人都可以给我任何关于下一步的指示,以使其正常工作吗?

提前致谢

2 个答案:

答案 0 :(得分:0)

虽然这不是您问题的答案,但您可以选择查看mail包,它提供了另一种通过外部邮件服务器和地址发送邮件的方式:

require(mail)
sendmail("adam@work.com", "Send Mail R- Test", "TESTING TESTING TESTING")

请注意,您每天只能发送20封邮件(以避免垃圾邮件)。

答案 1 :(得分:0)

您可以为新的mailR包提供允许SMTP授权的镜头:http://cran.r-project.org/web/packages/mailR

然后应该进行以下调用:

send.mail(from = "sender@gmail.com",
          to = "recipient@gmail.com",
          subject = "Subject of the email",
          body = "Body of the email",
          smtp = list(host.name = "smtp.gmail.com", port = 465, user.name = "recipient", passwd = "PASSWORD", ssl = TRUE, tls = TRUE),
          authenticate = TRUE,
          send = TRUE)

只需替换参数smtp中的键值对,就应该设置为。