Email 将环境变量用于';收件人:';在詹金斯管道梅勒
我在Jenkins环境变量(emailsdl)中有一个电子邮件ID列表,并尝试将其用于Jenkins Pipeline Mailer中的Email 将环境变量用于';收件人:';在詹金斯管道梅勒,email,jenkins,groovy,jenkins-pipeline,Email,Jenkins,Groovy,Jenkins Pipeline,我在Jenkins环境变量(emailsdl)中有一个电子邮件ID列表,并尝试将其用于Jenkins Pipeline Mailer中的收件人:,如下所示: mail (to: 'Mailer', recipients: '${env.emailsdl}', subject: "Job '${env.JOB_NAME}' (${env.BUILD_NUMBER}) is waiting for input", body: "Please go to ${env.BUILD_URL}.")
收件人:
,如下所示:
mail (to: 'Mailer', recipients: '${env.emailsdl}',
subject: "Job '${env.JOB_NAME}' (${env.BUILD_NUMBER}) is waiting for input",
body: "Please go to ${env.BUILD_URL}.")
使用上述代码,我没有收到电子邮件,也没有收到错误:
未发送电子邮件。没有指定任何类型的收件人(“收件人”、“抄送”、“密件抄送”)
但是当我用真正的电子邮件替换${env.emailsdl}
时(xyxyx@foo.com)然后它会触发一封电子邮件。我甚至尝试了env['emailsdl']
,但没有成功
在这种情况下,有没有一种方法可以为收件人传递环境变量?在groovy中,如果使用单引号字符串,它将不会被插入,这意味着在字符串
'${env.emailsdl}'
中,变量env.emailsdl
不会被替换。您需要在groovy中使用双引号字符串:“${env.emailsdl}”
,如果使用单引号字符串,它将不会被插值,这意味着在字符串'${env.emailsdl}
中,变量env.emailsdl
将不会被替换。您需要使用双引号字符串:“${env.emailsdl}”
@Gergely:您的建议帮助我解决了问题。问题是我有一个本地环境变量,它被分配了一个来自其他全局环境变量的值:globalVar=xyxyx@foo.com
和emailsdl=${globalVar}
位于作业的本地属性中。现在我在管道脚本中调用这个emailsdl
。这已通过以下方式解决:
env.((env.emailsdl).replaceAll("\$", ""))
@盖里:你的建议帮助我解决了我的问题。问题是我有一个本地环境变量,它被分配了一个来自其他全局环境变量的值:
globalVar=xyxyx@foo.com
和emailsdl=${globalVar}
位于作业的本地属性中。现在我在管道脚本中调用这个emailsdl
。这已通过以下方式解决:
env.((env.emailsdl).replaceAll("\$", ""))
如果您在脚本中添加
echo env.emailsdl
行,是否打印正确的值?@Gergely:您的建议帮助我解决了问题。问题是我有一个本地环境变量,它被分配了一个来自其他全局环境变量的值:globalVar=xyxyx@foo.com
和emailsdl=${globalVar}
位于作业的本地属性中。现在我在管道脚本中调用这个emailsdl
。此问题已通过以下方式解决:env.((env.emailsdl).replaceAll(\$,“”)
。如果在脚本中添加echo env.emailsdl
行,是否打印正确的值?@Gergely:您的建议帮助我解决了我的问题。问题是我有一个本地环境变量,它被分配了一个来自其他全局环境变量的值:globalVar=xyxyx@foo.com
和emailsdl=${globalVar}
位于作业的本地属性中。现在我在管道脚本中调用这个emailsdl
。此问题已由以下人员解决:env.((env.emailsdl).replaceAll(\$,“”)
。您能接受您的答案吗?这样这个问题就不会一直没有答案了?您能接受您的答案吗?