我有一个 R 代码,经过一系列步骤后,它最终会发送一封电子邮件。当我在 RStudio 上运行它时,整个代码运行良好并发送电子邮件。但是,当我通过 Windows 任务计划程序运行它时,代码仍然可以正常运行(并且按照预期运行),但不会发送电子邮件。我已经尝试了 RDCOMClient 和 sendmailR,但问题仍然存在。
以下是任务的安排方式。
程序/脚本:“C:\Program Files\R\R-3.1.3\bin\x64\Rscript.exe” 添加参数:datavalv3.R 开始于:C:\BLP\Projects\Project_07
这是电子邮件的代码部分(使用 RDCOMClient)
library(RDCOMClient)
path_name <- file.path(mainDir, subDir)
subject <- paste0("Data quality checks completed for ", analysis_date)
body <- paste0("Data summary has been compiled for all the farms for ", analysis_date,". All the data summaries are saved in the folder <", path_name, ">.")
email_fn <- function(recipient) {
OutApp <- COMCreate("Outlook.Application")
outMail = OutApp$CreateItem(0)
outMail[["To"]] = recipient
outMail[["subject"]] = subject
outMail[["body"]] = body
outMail$Send()
}
email_fn(recipient = "person1@abc.com")
这是电子邮件的代码部分(使用 sendmailR)
library(sendmailR)
from <- "person1@abc.com"
to <- c("person2@abc.com","person3@abc.com")
subject <- "Email Subject"
body <- "Email body."
mailControl = list(smtpServer = "tucson.websitewelcome.com")
sendmail(from = from, to = to, subject = subject, msg = body, control = mailControl)
知道可能是什么问题吗?
这是一个更新:找出问题所在。在任务调度程序的安全选项中,我之前检查过“无论用户是否登录都运行”。我取消选中它并选中“仅在用户登录时运行” - 这成功了,电子邮件正在通过。