2013-10-21 59 views
1

我在$ JENKINS_HOME名为sender_email_address.groovy /电子邮件模板Groovy脚本它具有以下代码詹金斯电子邮件-EXT插件 - 使用scriptler设置味精发件人的电子邮件地址

<% 
StringBuilder builderEmail = new StringBuilder() 
builderEmail.append("${build.buildVariables.get('BUILD_USER')}") 
builderEmail.append("@collective.com") 
def sender_email = builderEmail.toString() 
%> 
${sender_email} 

我想设置email-ext插件的预发送脚本中的电子邮件发件人地址。这里是一个确实的代码:

import javax.mail.Message.RecipientType 
import javax.mail.Address 
import javax.mail.internet.InternetAddress 
import javax.mail.internet.MimeMessage 

def senderAddress = ${SCRIPT, script="sender_email_address.groovy"} 
listener.logger("Sender address = " + senderAddress) 
msg.setFrom(new InternetAddress(senderAddress)) 

我得到以下错误:

def senderAddress = Error in script or template: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: 
Script1.groovy: 1: unexpected token: < @ line 1, column 1. 
<% 
^ 

我想从电子邮件地址设置发送到是谁在登录的用户。我有权访问$ {BUILD_USER}值。但是,如果我直接在使用如下图所示

msg.setFrom(new InternetAddress("${BUILD_USER}") 

脚本直接替换$ {} BUILD_USER令牌脚本本身的电子邮件地址预先发送脚本。由于下一次使用不同的用户登录时,这会破坏对其进行标记的目的,所以令牌不可替换。有没有一种方法可以在其他地方实现,只需保留令牌$ {BUILD_USER}?

回答

0

如果您将$ {SCRIPT}标记与“script”参数一起使用,则不需要像模板一样使用<%>>。所以,你的代码应该是这样的:

StringBuilder builderEmail = new StringBuilder() 
builderEmail.append("${build.buildVariables.get('BUILD_USER')}") 
builderEmail.append("@collective.com") 
builderEmail.toString() 
相关问题