如何配置Jenkins Pipeline,以便可以自动发送带有自定义正文的电子邮件?

时间:2019-07-02 16:37:20

标签: jenkins jenkins-pipeline email-ext

我正在尝试让Jenkins管道自动发送电子邮件,但具有自定义主体。该管道是通过Web应用程序中的按钮调用的,因此我正在考虑在该按钮旁边放置一个文本框来编写所需的消息。但是,我不知道如何将这段文本发送给Jenkins。

现在,管道正在通过emailext发送电子邮件,并将正文消息进行硬编码。我知道我可以使用Build With Parameters API将数据从Web应用程序传递到Jenkins,我目前正在将其用于“用户名”和“密码”字段,但是发送整个电子邮件作为参数听起来不正确。

  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 个答案:

答案 0 :(得分:1)

您还可以使用类似的方法,在其中可以添加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']]
    )

答案 1 :(得分:0)

这是一个随时可以执行的功能,您也可以添加附件。 适应您的需求。

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')
}

答案 2 :(得分:0)

您要做的第一件事是需要一个参数MAILTEST,然后您可以像在Coldplayer中建议的那样在电子邮件正文中使用此参数。

我用过的{@ 3}} 因为默认触发器在其余接口上仅支持一种令牌作为参数。