我正试图在ext-email插件的帮助下从Jenkins脚本化管道发送电子邮件。
我已为插件配置了默认收件人。
这是我的管道:
node {
try {
echo "hi"
} catch (e) {
currentBuild.result = "FAILED"
notifyBuild(currentBuild.result)
throw e
}
finally {
notifyBuild(currentBuild.result)
}
}
def notifyBuild(String buildStatus = 'STARTED') {
buildStatus = buildStatus ?: 'SUCCESSFUL'
def subject = "${buildStatus}: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'"
def summary = "${subject} (${env.BUILD_URL})"
def details = """
<p>STARTED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]':</p>
<p>Check console output at "<a href="${env.BUILD_URL}">${env.JOB_NAME} [${env.BUILD_NUMBER}]</a>"</p>
"""
emailext (
subject: subject,
body: details,
attachLog: true,
to: ${DEFAULT_RECIPIENTS},
recipientProviders: [[$class: 'DevelopersRecipientProvider'], [$class: 'RequesterRecipientProvider'], [$class: 'CulpritsRecipientProvider']]
)
}
我试图将电子邮件发送给触发该作业的用户,但没有收到发送给DEFAULT_RECIPIENTS的电子邮件。我也尝试过使用to: env.DEFAULT_RECIPIENTS
。
我收到此错误:
groovy.lang.MissingPropertyException: No such property: $DEFAULT_RECIPIENTS for class: groovy.lang.Binding
答案 0 :(得分:3)
我也有同样的问题,刚才我在下面的步骤中找到了解决方案:
emailext body: '''${SCRIPT, template="groovy-html.template"}''',
subject: "${env.JOB_NAME} - Build # ${env.BUILD_NUMBER} - Successful",
mimeType: 'text/html',to: '$DEFAULT_RECIPIENTS'
记下$DEFAULT_RECIPIENTS
周围的单个qoutes,这是成功的关键。
我不知道为什么不能使用双qoutes:(
答案 1 :(得分:0)
您应该转到“管理Jenkins”->“配置系统”->“扩展电子邮件通知”。您应该在此处填写“默认收件人”字段并保存。 (如果您没有电子邮件扩展插件,请安装它。)
然后,您可以在'to'子句中使用$DEFAULT_RECIPIENT
变量。请取下括号。
希望这会有所帮助。