Отправить письмо с R от Gitlab CI - PullRequest
1 голос
/ 29 февраля 2020

Я хочу отправить настроенное электронное письмо от 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")
  )
...