sending mail from R (mailR)

2020-07-18 05:56发布

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

标签: r sendmailr
5条回答
三岁会撩人
2楼-- · 2020-07-18 06:14

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
查看更多
ら.Afraid
3楼-- · 2020-07-18 06:19

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)
查看更多
▲ chillily
4楼-- · 2020-07-18 06:19

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.

查看更多
Viruses.
5楼-- · 2020-07-18 06:19

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!

查看更多
Bombasti
6楼-- · 2020-07-18 06:29
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
查看更多
登录 后发表回答