4

I am trying to send mail from R on a windows 7 (home) machine. I tried the following code

send.mail(from = "mymailid@gmail.com",
          to = c("mymailid@gmail.com"),
          subject = "Subject of the email",
          body = "Body of the email",
          smtp = list(host.name = "smtp.gmail.com", port = 465, user.name = "myuserid", passwd = "my password", ssl = TRUE),
          authenticate = TRUE,
          send = TRUE)

I get the following error: Error in ls(envir = envir, all.names = private) : invalid 'envir' argument

after that I tried set up an hmail server (with a local domain name and user account, and smtp set up for smtp.gmail.com:25)

send.mail(from = "localuser@localdomain.local",
          to = c("mymailid@gmail.com"),
          subject = "Subject of the email",
          body = "Body of the email",
          smtp = list(host.name = "mail.hmailserver.com", port = 25),
          authenticate = FALSE,
          send = TRUE)

I still get the same error. Any help will be greatly appreciated. Thanks vm

Prodipta Ghosh
  • 509
  • 4
  • 14
  • Try [enabling](https://www.google.com/settings/security/lesssecureapps) SMTP access for your Google account. – m0nhawk Apr 04 '15 at 19:21

5 Answers5

4

If you're using gmail account, you might need to allow acess to your account from less secure aplications, using this link https://www.google.com/settings/security/lesssecureapps

If you have as well a 2 step verification, you also need to deactivate that.

user3116408
  • 309
  • 4
  • 9
3

If your gmail account is propertly setup (as mOnhawk suggested) then this form should work for the smtp list:

smtp = list(host.name = "smtp.gmail.com", port = 465,
                        ssl=TRUE, user.name = "mymailid@gmail.com",
                        passwd = "my password)
Dominic Comtois
  • 10,230
  • 1
  • 39
  • 61
1
i am trying to send email using RDCOMClient and here is the code

library(RDCOMClient)

emails <- paste("emailid")
## init com api
OutApp <- COMCreate("Outlook.Application")
## create an email 
outMail = OutApp$CreateItem(0)
## configure  email parameter 
outMail[["To"]] = emails
outMail[["Cc"]] = "emailid"
outMail[["subject"]] = "Monthly Report for Compliance"
outMail[["body"]] = paste(" Please find the monthly report  completed for ",Sys.Date(),
                          ".\n\n instrument file is saved at:\n G:\\Data Science\\Monthly Check - Westlake\\Instruments and Issuers Compliance List
                          "
                          )

outMail[["attachments"]]$Add("G:\\Data Science\\Monthly Check - Westlake\\Instruments and Issuers Compliance List\\Instruments_tracked-.02202018.csv")    
outMail$Send()

I get the below error
<checkErrorInfo> 80020009 
No support for InterfaceSupportsErrorInfo
checkErrorInfo -2147352567
anirudha k
  • 31
  • 2
0

You can try the following example:

library(mail)

to <-  "albert.physik@gmail.com"
subject <- "mail of R"
msg <- paste("Testing!")
sendmail(to, subject , msg)

But only allows you to send 20 emails per day I hope you find it useful.

Luck!

rral
  • 554
  • 3
  • 20
0

Did you use empty string as the body?

I tried with my company email and also gmail. When I put

body = "", # quotation marks with nothing in between

it yields

Error in ls(envir = envir, all.names = private) : invalid 'envir' argument

While this works:

body = " ", # adding a space there

Don't know why at all... If you happened to have empty string, this might help.

Subject being empty string causes no problem:

subject = "", # quotation marks with nothing in between
YJZ
  • 3,934
  • 11
  • 43
  • 67