ext-email插件,不从管道发送电子邮件给默认收件人

时间:2018-08-27 12:09:38

标签: jenkins jenkins-plugins

我正试图在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

2 个答案:

答案 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变量。请取下括号。

希望这会有所帮助。