Отправить почту R и сокеты
Я пытаюсь использовать функцию SendMailR, я проверил в нашем ИТ-отделе, что я использую правильный сервер, и у меня есть необходимые разрешения для подключения, и они отправили электронные письма через этот сервер, но не через 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 ответа
Хотя это не ответ на ваш вопрос, вы можете проверить mail
пакет, который предлагает альтернативный способ отправки почты через внешний почтовый сервер и адрес:
require(mail)
sendmail("adam@work.com", "Send Mail R- Test", "TESTING TESTING TESTING")
Обратите внимание, что таким образом вы можете отправлять только 20 писем в день (чтобы избежать спама).
Вы можете дать новый пакет 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
и вы должны быть готовы к работе.