3
我正在嘗試使用Groovy和email-ext插件來定製電子郵件。當我爲這些電子郵件添加新功能時,我可能會在腳本中引入錯誤,並因此收到包含StackTrace的錯誤郵件。所以,我希望能夠發送完成的工作通知,因爲我的工作可能需要幾個小時(目前超過4個)。
有沒有辦法讓jenkins發送完成的工作通知(使用Groovy或任何其他腳本語言)?Jenkins - 電子郵件通知
我正在嘗試使用Groovy和email-ext插件來定製電子郵件。當我爲這些電子郵件添加新功能時,我可能會在腳本中引入錯誤,並因此收到包含StackTrace的錯誤郵件。所以,我希望能夠發送完成的工作通知,因爲我的工作可能需要幾個小時(目前超過4個)。
有沒有辦法讓jenkins發送完成的工作通知(使用Groovy或任何其他腳本語言)?Jenkins - 電子郵件通知
找到一個解決方案:
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import groovy.text.Template
import groovy.text.SimpleTemplateEngine
import javax.mail.*
import javax.mail.internet.*
//-------------- Job params --------------
projectName="YourProjectName";
buildNum = 10;
templateName="groovy-html-cobertura.template";
recipients="[email protected]";
sender="[email protected]";
smtpHost="mysmtphost";
//------------End Job params -------------
for (hudson.model.AbstractProject p : hudson.model.Hudson.instance.projects) {
if(p.name.equals(projectName)){
for (hudson.model.AbstractBuild b : p.getBuilds()) {
if(b.getNumber() == buildNum){
println b;
b.reload();
def binding = [ "build" : b,
"project" : b.getProject(),
"rooturl" : hudson.model.Hudson.getInstance().getRootUrl(),
"it" : new hudson.plugins.emailext.plugins.content.ScriptContentBuildWrapper(b),
"spc" : " " ]
def engine = new SimpleTemplateEngine()
java.io.File file = new java.io.File(hudson.model.Hudson.getInstance ().getRootPath().getBaseName()+"/email-templates/"+templateName);
mailBody = engine.createTemplate(file.getText()).make(binding).toString();
port = 25
props = new Properties()
props.put('mail.smtp.host', smtpHost)
props.put('mail.smtp.port', port.toString())
session = Session.getDefaultInstance(props, null)
// Construct the message
msg = new MimeMessage(session)
msg.from = new InternetAddress(sender)
msg.sentDate = new Date()
msg.subject = 'Template Test'
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients))
msg.setHeader('Organization', 'i-BP')
msg.setContent(mailBody,
'text/html')
// Send the message
Transport.send(msg)
}
}
}
}
的電子郵件-EXT插件可以根據生成的結果,使用不同的模板(果凍腳本)。如果構建失敗,您可以配置該插件發送不同的郵件,如果成功並在其他場合下使用......這不是您要查找的內容嗎? –
嗨,我已經配置了這些觸發器,但我的需求是添加新功能到鏈接到這些觸發器的電子郵件,所以我希望能夠通過傳遞的作業發送這些通知。 – Dominique
你的意思是[email-ext] [1]插件中的觸發功能嗎? [1]:http://stackoverflow.com/questions/8321649/gitweb-how-to-display-markdown-file-in-html-format-automatically-like-github –