how do you send email from R

后端 未结 8 878
情书的邮戳
情书的邮戳 2020-11-29 18:11

I want to send emails from R. This is what I have so far:

library(sendmailR)


from <- \"eamil@example.com\"
to <- \"email2@example.com\"
subject <-         


        
相关标签:
8条回答
  • 2020-11-29 18:34
    library(mailR)
    sender <- "abc@gmail.com"
    
    recipients <- c("bcd@gmail.com","xyz@gmail.com")
    
    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="abc@gmail.com", passwd="abc@1234", ssl=TRUE), 
         authenticate = TRUE, send = TRUE ,
         attach.files = c(path2), html = TRUE , inline = TRUE )
    
    0 讨论(0)
  • 2020-11-29 18:39

    I just tried it out, and it worked for me.

    My only differences were I used <> for the from and to:

    from = "<email1@dal.ca>"
    to = "<email2@gmail.com>"
    

    and my mail control was different, I used

    control=list(smtpServer="ASPMX.L.GOOGLE.COM"))
    
    0 讨论(0)
  • 2020-11-29 18:39

    Sorry for bumping up this thread. If you want to send email from R using Microsoft outlook, below is the way to go using the RDCOMClient package. I myself spent a lot of time trying to find an answer on this. I thought it would be useful to have this solution too in this thread for users.

    Full credit to @agstudy who provided the original solution in this link - Sending email in R via outlook

    library (RDCOMClient)
    
    OutApp <- COMCreate("Outlook.Application")
    outMail = OutApp$CreateItem(0)
    outMail[["To"]] = "test@test.com"
    outMail[["subject"]] = "Test Subject"
    outMail[["body"]] = "Body of email"               
    outMail$Send()
    
    0 讨论(0)
  • 2020-11-29 18:46

    If you prefer an in-house solution with your server, you can call the linux sendmail.

    EMAIL <- myEmail@gmail.com
    cmd <- 'subject="Info server";body="This is an email"'
    cmd <- paste("echo -e \"Subject:${subject}\n${body}\" | /usr/sbin/sendmail -t \"", EMAIL, "\"")
    system(cmd)      
    
    0 讨论(0)
  • 2020-11-29 18:49

    There is a new package called emayili with two very interesting promises:

    • works on all manner of SMTP servers
    • has minimal dependencies (or dependencies which are easily satisfied)

    It seems early stages but promising nonetheless. Sending email is as simple as:

    devtools::install_github("datawookie/emayili")
    library(emayili)
    library(dplyr)
    
    email <- envelope() %>%
      from("alice@yahoo.com") %>%
      to("bob@google.com") %>%
      subject("This is a plain text message!") %>%
      body("Hello!")
    
    smtp <- server(host = "smtp.gmail.com",
                   port = 465,
                   username = "bob@gmail.com",
                   password = "bd40ef6d4a9413de9c1318a65cbae5d7")
    
    smtp(email, verbose = TRUE)
    
    0 讨论(0)
  • 2020-11-29 18:49

    There are two ways to send an email via Gmail, anonymized or authenticated. Here is the code for anonymized:

    library(mailR)
    send.mail(from = "sender@gmail.com",
          to = c("Recipient 1 <recipient1@gmail.com>", "recipient2@gmail.com"),
          cc = c("CC Recipient <cc.recipient@gmail.com>"),
          bcc = c("BCC Recipient <bcc.recipient@gmail.com>"),
          subject = "Subject of the email",
          body = "Body of the email",
          smtp = list(host.name = "aspmx.l.google.com", port = 25),
          authenticate = FALSE,
          send = TRUE)
    

    Make sure the recipient emails are Gmail too. It most likely goes to the spam folder in the Gmail account so make sure to mark it "not spammed".

    You can find more info here.

    0 讨论(0)
提交回复
热议问题