2014-05-01 14 views
36

Chcę wysłać e-mail z R. To, co mam tak daleko:jak można wysłać e-mail z R

library(sendmailR) 


from <- "[email protected]" 
to <- "[email protected]" 
subject <- "Performance Result" 
body <- "This is the result of the test:"      
mailControl=list(smtpServer="snmpt server address") 

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

Kiedy wykonać ten skrypt, moi R zawiesza sesji. Jakieś pomysły, co może się wydarzyć?

+1

byłoby niesamowite wiedzieć, jak rozwiązać ten problem, ja zawsze dostał błąd starając się korzystać z tej funkcji @ user1471980 – Duck

+1

co twoja operacyjny system? –

+0

Czy [mailR] (https://github.com/rpremraj/mailR) działa z tą samą konfiguracją? – lukeA

Odpowiedz

14

Właśnie wypróbowałem to i to zadziałało dla mnie.

Moje jedyne różnice były kiedyś <> dla zi do:

from = "<[email protected]>" 
to = "<[email protected]>" 

i moja kontrola poczta była inna, kiedyś

control=list(smtpServer="ASPMX.L.GOOGLE.COM")) 
+0

Drogi @Sarah, czy wiesz, czy Twoje rozwiązanie działa w systemie Windows i Outlook? – Duck

+2

Używam systemu Windows (8.1), ale nie używam programu Outlook, więc nie jestem tego pewien. – Sarah

+0

Dzięki @Sarah może wiesz, jak uzyskać 'smtpServer' na Windows – Duck

32

Jeśli potrzebujesz, aby móc użyć Serwer smtp z uwierzytelnianiem można użyć pakietu mailR.

Na przykład za pomocą serwera SMTP Gmaila:

library(mailR) 
sender <- "[email protected]" 
recipients <- c("[email protected]") 
send.mail(from = sender, 
      to = recipients, 
      subject = "Subject of the email", 
      body = "Body of the email", 
      smtp = list(host.name = "smtp.gmail.com", port = 465, 
         user.name = "[email protected]",    
         passwd = "YOURPASSWORD", ssl = TRUE), 
      authenticate = TRUE, 
      send = TRUE) 
+7

Otrzymuję taki błąd: 'Błąd w ls (envir = envir, all.names = private): nieprawidłowy argument 'envir'' –

+1

Nie mogę odtworzyć twojego błędu. Kod działa dla mnie tak, jak jest. Rozważ zadawanie nowego pytania, w którym opisujesz, jak odtworzyć ten błąd i prawdopodobnie ktoś będzie w stanie Ci pomóc. Może [this] (https://github.com/rpremraj/mailR/issues/15) pomaga. – alko989

+0

@MarcinKosinski Dostałem ten błąd, ale potem ponownie uruchomiłem R i zadziałało to dla mnie. – isomorphismes

1
library(mailR) 
sender <- "[email protected]" 

recipients <- c("[email protected]","[email protected]") 

send.mail(from = sender, to = recipients, subject="Cash_Collected_Bank_transfer",Sys.Date(),"{}", body = Summary1, encoding = "utf-8", 
    smtp = list(host.name = "smtp.gmail.com", port = 465, 
    user.name="[email protected]", passwd="[email protected]", ssl=TRUE), authenticate = TRUE, send = TRUE ,attach.files = c(path2),html = TRUE , inline = TRUE) 
+1

Chociaż twoja odpowiedź może być poprawna, lepiej jest dodać tekst wyjaśniający, aby pomóc czytelnikom zrozumieć twój kod. – vincentmajor

2

Przepraszamy za lada tego wątku. Jeśli chcesz wysłać wiadomość e-mail z R przy użyciu programu Microsoft Outlook, poniżej znajduje się sposób korzystania z pakietu RDCOMClient. Sam poświęciłem dużo czasu na znalezienie odpowiedzi na to pytanie. Pomyślałem, że byłoby użyteczne mieć to rozwiązanie również w tym wątku dla użytkowników.

pełny kredyt @agstudy która dostarczyła oryginalne rozwiązania w tym linkiem - Sending email in R via outlook

library (RDCOMClient) 

OutApp <- COMCreate("Outlook.Application") 
outMail = OutApp$CreateItem(0) 
outMail[["To"]] = "[email protected]" 
outMail[["subject"]] = "Test Subject" 
outMail[["body"]] = "Body of email"    
outMail$Send() 
Powiązane problemy