2014-05-01 13 views
36

Tôi muốn gửi email từ R. Đây là những gì tôi có cho đến nay:làm thế nào để bạn gửi email từ 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) 

Khi tôi thực hiện kịch bản này, R của tôi bị treo phiên. Bất kỳ ý tưởng gì có thể xảy ra?

+1

Nó sẽ là tuyệt vời biết làm thế nào để giải quyết vấn đề này, tôi luôn luôn có lỗi khi cố gắng sử dụng chức năng này @ user1471980 – Duck

+1

điều hành của bạn là gì hệ thống? –

+0

[MailR] (https://github.com/rpremraj/mailR) có hoạt động bằng cùng cấu hình không? – lukeA

Trả lời

14

Tôi vừa thử nó, và nó đã làm việc cho tôi.

khác biệt duy nhất của tôi là tôi đã sử dụng <> cho từ và đến:

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

và kiểm soát email của tôi đã khác nhau, tôi đã sử dụng

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

Kính gửi @Sarah bạn có biết nếu giải pháp của bạn hoạt động trên Windows và Outlook ??? – Duck

+2

Tôi đang sử dụng Windows (8.1), nhưng tôi không sử dụng triển vọng, vì vậy tôi không chắc chắn về điều đó. – Sarah

+0

Cảm ơn @Sarah có thể bạn biết làm thế nào để có được 'smtpServer' trên Windows – Duck

32

Nếu bạn cần để có thể sử dụng một máy chủ SMTP có xác thực bạn có thể sử dụng gói mailR.

Ví dụ sử dụng máy chủ smtp của gmail:

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

Tôi nhận được lỗi như vậy: 'Lỗi trong ls (envir = envir, all.names = private): đối số 'envir' không hợp lệ ' –

+1

Tôi không thể sao chép lỗi của bạn. Mã này làm việc cho tôi như thế. Cân nhắc đặt câu hỏi mới nơi bạn mô tả cách tạo lại lỗi này và có thể ai đó sẽ có thể giúp bạn. Có thể [this] (https://github.com/rpremraj/mailR/issues/15) giúp. – alko989

+0

@MarcinKosinski Tôi nhận được lỗi đó nhưng sau đó khởi động lại R và nó làm việc cho tôi. – 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

Mặc dù câu trả lời của bạn có thể chính xác, bạn nên thêm văn bản giải thích để giúp người đọc hiểu mã của bạn. – vincentmajor

2

Xin lỗi vì chạm lên chủ đề này. Nếu bạn muốn gửi email từ R bằng cách sử dụng Microsoft Outlook, dưới đây là cách để đi bằng cách sử dụng gói RDCOMClient. Bản thân tôi đã dành rất nhiều thời gian để tìm câu trả lời về điều này. Tôi nghĩ rằng nó sẽ hữu ích để có giải pháp này quá trong thread này cho người dùng.

tín dụng đầy đủ để @agstudy đã cung cấp giải pháp ban đầu trong liên kết này - 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() 
Các vấn đề liên quan