我正在尝试使用以下代码使用sendmailR
软件包从R发送电子邮件,但遗憾的是这些代码失败了:
## Set mail contents
from <- sprintf('<sendmailR@%s>', Sys.info()[4])
to <- '<slackline@gmail.com>'
subject <- 'Feeding Plots'
body <- list('Latest feeding graph', mime_part(feeding.plot,
name = "feeding"))
## Set control parameters
control <- sendmail_options(verboseShow = TRUE,
smtpServer ="smtp.gmail.com",
smtpPort = 587,
smtpSTARTTLS = '',
blocking = FALSE)
sendmail(from,
to,
subject,
msg = body,
control = control,
headers)
<< 220 mx.google.com ESMTP xt1sm884721wjb.17 - gsmtp
>> HELO kimura
<< 250 mx.google.com at your service
>> MAIL FROM: <sendmailR@kimura>
<< 530 5.7.0 Must issue a STARTTLS command first. xt1sm884721wjb.17 - gsmtp
Error in wait_for(code) :
SMTP Error: 5.7.0 Must issue a STARTTLS command first. xt1sm884721wjb.17 - gsmtp
sendmailR manual没有提到如何配置STARTTLS
,虽然它确实表明可以传递其他参数,这就是为什么我根据上面提到的内容包含了smtpSTARTLS = ''
选项的原因。其他一些主题(here和here)。我尝试使用smtpSTARTTLS
的参数并将其设置为TRUE
,但没有快乐。
对文档或解决方案的任何指示都是最受欢迎的。
由于
答案 0 :(得分:3)
据我了解,sendmailR
不支持任何类型的SMTP服务器登录,因此,gmail基本上无法使用。如果您在正确的网络内,并且设置了一个只能在网络内访问的服务器(例如,一个不使用身份验证的服务器),则只能使用该软件包。
替代方案是mail
包(您不能使用自己的地址)。
目前不支持SMTP AUTH。
答案 1 :(得分:2)
您可以为新的mailR包提供允许SMTP授权的镜头:http://cran.r-project.org/web/packages/mailR/index.html
然后应该进行以下调用:
send.mail(from = "slackline@gmail.com",
to = "slackline@gmail.com",
subject = "Subject of the email",
body = "Body of the email",
smtp = list(host.name = "smtp.gmail.com", port = 465, user.name = "slackline", passwd = "PASSWORD", ssl = TRUE),
authenticate = TRUE,
send = TRUE)