Как настроить Jenkins Pipeline, чтобы можно было автоматически отправлять электронную почту с произвольным телом? - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь, чтобы трубопровод Jenkins автоматически отправлял электронное письмо, но с собственным телом. Конвейер вызывается из веб-приложения кнопкой, поэтому я думал о том, чтобы там было текстовое поле для записи нужного сообщения перед нажатием кнопки. Однако я не знаю, как этот кусок текста можно отправить Дженкинсу.

Сейчас конвейер отправляет электронные письма по электронной почте с жестко закодированным сообщением тела. Я знаю, что могу передавать данные из веб-приложения в Jenkins с помощью API Build With Parameters, который в настоящее время я использую для поля «Имя пользователя» и «Пароль», но отправка целого сообщения электронной почты в качестве параметра звучит неправильно.

  emailext (
        subject: "---subject---",
        body: """Hi, 

This is the hardcoded message that I would the user to have flexibility to create themselves
        """,
        to: "---list of recipients---"
       )

Ответы [ 3 ]

1 голос
/ 05 июля 2019

Вы также можете использовать что-то вроде этого, где вы можете добавить REGEX и EXCERPT для настройки вашего почтового контента

emailext(
    to: "email_list",
    subject: "Subject",
    body: '''$BUILD_URL
          ${BUILD_LOG_REGEX, regex="DRYRUN.*DRYRUN.*DRYRUN",maxMatches=1, showTruncatedLines=false}
          ${BUILD_LOG_EXCERPT, start="EMAIL CONTENT:",end="END OF EMAIL CONTENT"}''',
    recipientProviders: [[$class: 'DevelopersRecipientProvider']]
    )
0 голосов
/ 10 июля 2019

Для вашей работы нужен параметр MAILTEST, а затем вы можете просто указать этот параметр в теле письма, как предложил coldplayer.

Для Честли, я использовал https://wiki.jenkins.io/display/JENKINS/Generic+Webhook+Trigger+Plugin, потому что поддержка триггера по умолчаниютолько вид токена в качестве параметра на остальном интерфейсе.

0 голосов
/ 03 июля 2019

Вот функция, готовая к выполнению, вы также можете добавить вложение. Приспосабливайтесь к своим потребностям.

def sendMail() {
    def body = """
            <html>
               <body>
                  <p>Hello</p>
                  <p><img src="cid:screenshot.jpg" alt="screenshot"/></p>
                  <ul>
                     <li><strong>Jenkins Build URL:</strong> ${env.BUILD_URL}</li>
                  </ul>
               </body>
            </html>
            """
    emailext(to: recipient, subject: 'SUCCESS : ' + subject, body: body, mimeType: 'text/html', attachmentsPattern: 'screenshot.jpg')
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...