Jenkins 电子邮件扩展插件未加载通过配置文件提供程序插件添加的groovy模板

Jenkins 电子邮件扩展插件未加载通过配置文件提供程序插件添加的groovy模板,jenkins,jenkins-pipeline,jenkins-plugins,jenkins-groovy,jenkins-email-ext,Jenkins,Jenkins Pipeline,Jenkins Plugins,Jenkins Groovy,Jenkins Email Ext,我目前正在使用声明性语法从jenkins build pipeline发送自定义电子邮件通知。我的jenkins服务器上安装了配置文件提供程序插件3.8.0、电子邮件扩展插件2.82和电子邮件扩展模板插件1.2 我还完成了电子邮件扩展插件工作所需的全局系统配置(smtp凭据、默认值等) 然后,我创建了一个简单的groovy模板脚本,并使用名为my email template的Config file Provider插件将其作为托管文件添加到Jenkins上。添加文件时,我选择了文件类型作为扩展

我目前正在使用声明性语法从jenkins build pipeline发送自定义电子邮件通知。我的jenkins服务器上安装了
配置文件提供程序插件3.8.0、电子邮件扩展插件2.82和电子邮件扩展模板插件1.2

我还完成了电子邮件扩展插件工作所需的全局系统配置(smtp凭据、默认值等)

然后,我创建了一个简单的groovy模板脚本,并使用名为my email template的Config file Provider插件将其作为托管文件添加到Jenkins上。添加文件时,我选择了文件类型作为扩展电子邮件发布程序Groovy模板

然后我在Jenkins文件中添加了以下步骤

steps {
  emailext body: '''${SCRIPT, template="managed:my-email-template"}''',
  mimeType: 'text/html',
  subject: "[Jenkins] ${currentBuild.fullDisplayName}",
  to: "abc@gmail.com"    
}
通过以上配置,我收到了一封邮件,邮件主体为

在中找不到Groovy模板文件[托管:我的电子邮件模板] $JENKINS_主页/电子邮件模板

据官方称,我的模板文件reference使用了managed:prefix,所以我希望它引用配置的托管文件,但它仍在jenkins home下搜索该文件


有人能帮我吗?

默认情况下,电子邮件扩展插件位于${JENKINS_HOME}/email templates/directory内。 如果您有一个名为“我的电子邮件模板”的脚本,并且没有使用配置文件提供程序插件,那么您可以将脚本放在${JENKINS_HOME}/email templates/目录中,并按以下方式使用它:

stage("Send Email")
   {
     steps {
                emailext body: '''${SCRIPT, template="my-email-template"}''', subject: 
                'Email subject  ', to: 'abc@gmail.com'
          }
   }
如果中的电子邮件扩展插件找不到模板文件,则无论您是否使用托管插件,它都会给出如下错误:

Groovy Template file [my-email-template.template] was not found in $JENKINS_HOME/email-templates.
使用配置文件提供程序插件和托管:前缀:

步骤1:开始管理Jenkins->管理的文件
步骤2:单击->添加新配置
步骤3:选择键入作为扩展电子邮件发行商Groovy模板,然后单击提交
步骤4:选择文件名,并添加模板文件的内容。确保复制此名称,因为它将在管道中使用。单击提交。

步骤5:在管道中添加代码。确保您输入了正确的名称“托管:Groovy电子邮件模板”

stage("Send Email")
   {
     steps {
                emailext body: '''${SCRIPT, template="managed:Groovy Email Template"}''', subject: 
                'Email subject  ', to: 'abc@gmail.com'
          }
   }
应该运行上面的程序,您可以在下面的路径中看到模板文件的内容:
${JENKINS_HOME}/org.jenkinsci.plugins.configfiles.GlobalConfigFiles.xml

注意

如果上述方法不起作用,请重新启动jenkins/重新安装插件电子邮件扩展插件,正如vsbehere所做的那样,因为该方法是正确的。

您是否检查过用新插件管道替换声明性代理:声明性修复了问题?是的,我安装了管道:声明性v1.8.4(这是最新的一个)默认情况下会使用它。@vsbehere我提供的解决方案是否适合您。在步骤5中,您提到了${SCRIPT,“managed:Groovy Email Template”}。这是正确的方法吗,因为“managed:Groovy Email template”之前缺少template=“@vsbehere no sorry,这是我的错别字。我使用了与您提到的相同的插件版本,并生成了输出。工作正常。您能检查一下您提到的模板名称是否正确吗?您的文件
${JENKINS_HOME}/org.jenkinsci.plugins.configfiles.GlobalConfigFiles.xml
的内容也用模板内容更新了,如果您可以运行与我给出的相同的示例,请检查${JENKINS_HOME}/org.jenkinsci.plugins.configfiles.GlobalConfigFiles.xml,它有我的groovy模板内容。我还重新验证了配置和使用的文件名,两者都是相同的。@vsbehere:您能否在包含内容的阶段中运行
stage(“发送电子邮件”){steps{emailext body:'${SCRIPT,template=“managed:Groovy Email template”}',subject:'Email subject',to:'abc@gmail.com'           }    }
我试过运行这个,但在$JENKINS_HOME/Email模板中找不到Groovy模板文件[managed:Groovy Email Template]。