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

如何配置Jenkins管道,以便自动发送带有自定义正文的电子邮件?,jenkins,jenkins-pipeline,email-ext,Jenkins,Jenkins Pipeline,Email Ext,我正在尝试让Jenkins管道自动发送电子邮件,但带有自定义正文。管道是通过一个按钮从web应用程序调用的,因此我考虑在按下按钮之前在那里设置一个文本框来编写所需的消息。然而,我不知道这段文字是如何发送给詹金斯的 目前,管道正在通过emailext发送电子邮件,邮件正文已硬编码。我知道我可以使用Build with Parameters API将数据从web应用程序传递给Jenkins,我目前正在使用该API作为用户名和密码字段,但将整个电子邮件消息作为参数发送听起来不正确 emailext

我正在尝试让Jenkins管道自动发送电子邮件,但带有自定义正文。管道是通过一个按钮从web应用程序调用的,因此我考虑在按下按钮之前在那里设置一个文本框来编写所需的消息。然而,我不知道这段文字是如何发送给詹金斯的

目前,管道正在通过emailext发送电子邮件,邮件正文已硬编码。我知道我可以使用Build with Parameters API将数据从web应用程序传递给Jenkins,我目前正在使用该API作为用户名和密码字段,但将整个电子邮件消息作为参数发送听起来不正确

  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---"
       )

这是一个可以执行的函数,您还可以添加附件。 适应你的需要

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

def sendMail(){
def body=“”
你好

  • 詹金斯构建URL:${env.Build\u URL}
""" EmailText(收件人,主题:'SUCCESS:'+主题,正文:body,mimeType:'text/html',附件SPATTERN:'screenshot.jpg') }
这是一个可以执行的函数,您还可以添加附件。 适应你的需要

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

def sendMail(){
def body=“”
你好

  • 詹金斯构建URL:${env.Build\u URL}
""" EmailText(收件人,主题:'SUCCESS:'+主题,正文:body,mimeType:'text/html',附件SPATTERN:'screenshot.jpg') }
您也可以使用类似的方法,添加REGEX和extract以自定义邮件内容

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

您还可以使用类似的方法,在其中添加正则表达式和摘录以自定义邮件内容

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

你的工作需要一个参数MAILTEST,然后你可以像coldplayer建议的那样在邮件正文中使用这个参数

我用过的是Honestley
因为默认触发器只支持一种令牌作为rest接口上的参数。

您的作业需要一个参数MAILTEST,然后您可以像coldplayer建议的那样将此参数放在电子邮件正文中

我用过的是Honestley
因为默认触发器只支持一种令牌作为rest接口上的参数。

Hi Coldplayer,谢谢您的回答!然而,我不认为这是我正在寻找的。我不知道普通用户如何通过某种文本输入来定制身体。输入数据可能在哪里(一个web应用程序)和Jenkins之间没有通信,这是我一直困惑的问题。嗨Coldplayer,谢谢你的回答!然而,我不认为这是我正在寻找的。我不知道普通用户如何通过某种文本输入来定制身体。输入数据可能在哪里(一个web应用程序)和Jenkins之间没有通信,这是我一直困扰的问题。