我有给多个人发送电子邮件的脚本。有时它会返回错误,所以我想再尝试3次。如果在3次尝试中没有成功,则返回错误消息。到目前为止,我使用的是tryCatch(),它在第一次尝试发生错误时返回消息,然后跳到下一个收件人。
tryCatch({ CODE HERE }, error=function(e){
print("Email not sent")
})码
library(blastula)
create_smtp_creds_file(
file = "gmail_secret",
user = "sender@email.com",
provider = "gmail"
)
email <- prepare_test_message()
email %>%
smtp_send(
from = "sender@email.com",
to = "recipient@email.com",
credentials = creds_file(
"gmail_secret")
)发布于 2021-05-13 17:33:05
我会使用while循环:
fails <- 0
success <- FALSE
while (fails < 3 && !success) {
a <- tryCatch(
smtp_send(email,
from = "sender@email.com",
to = "recipient@email.com",
credentials = creds_file("gmail_secret")
), error = function(e) e)
if (!inherits(a, "simpleError")) {
success <- TRUE
} else {
fails <- fails + 1
}
}
if (!success) print("Email not sent")https://stackoverflow.com/questions/67523147
复制相似问题