Я хочу отправить настроенное электронное письмо от R при запуске Gitlab CI. Мой код R работает на моем компьютере. Однако тот же код R, выполняемый в конвейере Gitlab, завершился ошибкой со следующей ошибкой:
Sending email to smtp://smtp.office365.com:587 .
Error in curl_fetch_memory(url, handle = h) : Login denied
Calls: smtp -> curl_fetch_memory
Execution halted
ERROR: Job failed: exit code 1
Такое же сообщение об ошибке возникает при использовании двух разных пакетов R, то есть {emayili} и {blastula}. Я предполагаю, что решение (если решение существует?) Заключается в параметрах SMTP-сервера Gitlab ... но как пользователь R это выходит за рамки моего опыта. Итак, мой вопрос:
Кто-нибудь знает "волхвов c" для отправки настраиваемой электронной почты из R при запуске конвейера Gitlab CI?
Вот код Я использовал для учетной записи Outlook:
Мой .gitlab-ci.yml
файл:
image: rocker/tidyverse
test:
script:
- Rscript send_message.R
Мой send_message.R
файл с пакетом R {emayili}:
remotes::install_github("datawookie/emayili")
install.packages("magrittr")
library(emayili)
library(magrittr)
email <- envelope()
email <- email %>%
from("r_user@outlook.com") %>%
to("john_doe@example.com") %>%
subject("This is a plain text message!") %>%
text("Hello! This is a test.")
smtp <- server(host = "smtp.office365.com",
port = 587,
username = "r_user@outlook.com",
password = "**********")
smtp(email)
Или файл send_message.R
с использованием пакета R {blastula}:
install.packages("blastula")
library(blastula)
## Run manually once to get the outlook_creds file
#create_smtp_creds_file(
#file = "outlook_creds",
#user = "r_user@outlook.com",
#host = "smtp.office365.com",
#port = 587,
#use_ssl = TRUE
#)
test_message <- prepare_test_message()
test_message %>%
smtp_send(
from = "r_user@outlook.com",
to = "john_doe@outlook.com",
subject = "Testing the `smtp_send()` function",
credentials = creds_file(file = "outlook_creds")
)