使用Groovy Postbuild操作从Jenkins作业发送电子邮件

时间:2017-06-12 07:13:35

标签: jenkins groovy jenkins-2

有没有办法使用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}."

2 个答案:

答案 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)

是的,你可以。

  1. 转到jenkins -> configuration,为您的jenkins设置SMTP配置。如果你有自己的(公司)SMTP服务器,那么你可以使用google的smtp服务器和你的gmail帐户(你可以为jenkins创建新的gmail帐户)。
    enter image description here

  2. 添加帖子构建操作(电子邮件可编辑通知)并相应填写表单。

  3. enter image description here

    NB:因为我们在jenkins上设置了我们的Gmail帐户的用户名和密码,gmail会通知您,您的帐户正在被应用程序使用,而且安全性较低;在这种情况下,您必须按照说明here告诉gmail允许不太安全的访问。 如果您没有启用安全性较低的应用来访问您的应用,那么您的电子邮件可能无法正常发送。