我正在尝试让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---"
)
答案 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}} 因为默认触发器在其余接口上仅支持一种令牌作为参数。