Я пытаюсь автоматизировать этот код R с помощью пакета Windows, он называется mail.R, выполняет запрос в базе данных и отправляет почту с возвращенной информацией:
library(data.table)
library(htmlTable)
library(mailR)
library(DBI)
query <- "SELECT COUNT(*) FROM OPRLIBRANL.SAIALICTB"
odbccon <- dbConnect(odbc::odbc(), "NACIONAL")
records <- data.table(dbGetQuery(odbccon,query))
records <- as.integer(records$`00001`[1])
dbDisconnect(odbccon)
Table1 <- data.frame(
Archive= c("SAIALICTB"),
Records = c(records))
Table1 <- htmlTable(Table1, rnames = FALSE)
from1 <- "someone@xyz.com"
to1 <- c("someoneelse@xyz.com")
subject1 <- "Records in table"
body1 <- paste0("<html><head>
<style>
body{font-family:Calibri, sans-serif;}
table{border-left:1px solid #000000;border-top:1px solid #000000;}
table th{border-right:1px solid #000000;border-bottom:1px solid #000000;font-size:13px; font-weight:bold; margin: 0px; padding-left: 5px; padding-right: 5px; margin: 0px;}
table td{border-right:1px solid #000000;border-bottom:1px solid #000000;font-size:13px; font-weight:normal; margin: 0px; padding-left: 5px; padding-right: 5px; margin: 0px;}
</style>
</head><body><p>The number of records in table SAIALICTB are:</p>",
Table1,
"</body></html>")
send.mail(from=from1,to=to1,subject=subject1,body=body1,smtp=list(host.name="some SMTP server",port=25),authenticate = FALSE,html=TRUE, send = TRUE)
Работает нормально, когда я выполняюэто вручную в RStudio, но при использовании batch ничего не делает.Я использую эту команду для вызова кода R:
"C:\Program Files\R\R-3.5.2\bin\R.exe" CMD BATCH "C:\"...path to file..."\mail.R"
Я попытался использовать Rscript.exe вместо R.exe , также изменив dbConnect для odbcConnect в пакете RODBC и ничего не решает проблему.
Что-то не так с созданием ODBC, когда код R вызывается из CMD?
Или, я что-то не так делаю?
Заранее спасибо.