3

有没有办法使用Groovy Postbuild 操作从 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}."
4

2 回答 2

2

感谢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)
于 2017-06-12T14:22:00.870 回答
0

是的你可以。

  1. 通过转到 为您的 jenkins 设置 SMTP 配置jenkins -> configuration。如果您有自己的(公司)SMTP 服务器,那会很棒,否则您可以使用 google 的 smtp 服务器和您的 gmail 帐户(您可以为 jenkins 创建新的 gmail 帐户)。
    在此处输入图像描述

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

在此处输入图像描述

注意:因为我们将 gmail 帐户的用户名和密码放在 jenkins gmail 上,所以会通知您您的帐户正在被某个应用程序使用,并且安全性较低;在这种情况下,您必须按照此处的说明告诉 gmail 允许不太安全的访问。如果您没有启用不太安全的应用程序来访问您的应用程序,您的电子邮件可能无法正确传递。

于 2017-06-12T11:26:52.120 回答