有没有办法使用Groovy Postbuild action从Jenkins作业发送电子邮件?与使用Jenkins管道插件完成的方式类似
mail to: 'devops@acme.com',
subject: "Job '${env.JOB_NAME}' (${env.BUILD_NUMBER}) is waiting for input",
body: "Please go to ${env.BUILD_URL}."
答案 0 :(得分:1)
感谢https://stackoverflow.com/a/37194996/4624905我发现我可以直接使用JavaMail API。它帮助了我。
import javax.mail.* import javax.mail.internet.* def sendMail(host, sender, receivers, subject, text) { Properties props = System.getProperties() props.put("mail.smtp.host", host) Session session = Session.getDefaultInstance(props, null) MimeMessage message = new MimeMessage(session) message.setFrom(new InternetAddress(sender)) receivers.split(',').each { message.addRecipient(Message.RecipientType.TO, new InternetAddress(it)) } message.setSubject(subject) message.setText(text) println 'Sending mail to ' + receivers + '.' Transport.send(message) println 'Mail sent.' } Usage Example: sendMail('mailhost', messageSender, messageReceivers, messageSubject, messageAllText)
答案 1 :(得分:0)
是的,你可以。
转到jenkins -> configuration
,为您的jenkins设置SMTP配置。如果你有自己的(公司)SMTP服务器,那么你可以使用google的smtp服务器和你的gmail帐户(你可以为jenkins创建新的gmail帐户)。
添加帖子构建操作(电子邮件可编辑通知)并相应填写表单。
NB:因为我们在jenkins上设置了我们的Gmail帐户的用户名和密码,gmail会通知您,您的帐户正在被应用程序使用,而且安全性较低;在这种情况下,您必须按照说明here告诉gmail允许不太安全的访问。 如果您没有启用安全性较低的应用来访问您的应用,那么您的电子邮件可能无法正常发送。