使用 Groovy Postbuild 操作从 Jenkins 作业发送电子邮件
Send email from Jenkins job using Groovy Postbuild action
有没有办法使用 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}."
是的,你可以。
前往 jenkins -> configuration
为您的 jenkins 设置 SMTP 配置。如果您有自己的(公司)SMTP 服务器,那会很棒,否则您可以使用 google 的 smtp 服务器和您的 gmail 帐户(您可以为 jenkins 创建新的 gmail 帐户)。
添加 post 构建操作(通过电子邮件发送可编辑通知)并相应地填写表格。
注意: 因为我们将我们的 gmail 帐户的用户名和密码放在 jenkins 上,gmail 会通知您您的帐户正在被一个应用程序使用并且安全性较低;在这种情况下,您必须按照说明 here 告诉 gmail 允许不太安全的访问。
如果您没有启用安全性较低的应用程序来访问您的应用程序,您的电子邮件可能无法正确传送。
感谢 我发现我可以直接使用 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)
有没有办法使用 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}."
是的,你可以。
前往
jenkins -> configuration
为您的 jenkins 设置 SMTP 配置。如果您有自己的(公司)SMTP 服务器,那会很棒,否则您可以使用 google 的 smtp 服务器和您的 gmail 帐户(您可以为 jenkins 创建新的 gmail 帐户)。
添加 post 构建操作(通过电子邮件发送可编辑通知)并相应地填写表格。
注意: 因为我们将我们的 gmail 帐户的用户名和密码放在 jenkins 上,gmail 会通知您您的帐户正在被一个应用程序使用并且安全性较低;在这种情况下,您必须按照说明 here 告诉 gmail 允许不太安全的访问。 如果您没有启用安全性较低的应用程序来访问您的应用程序,您的电子邮件可能无法正确传送。
感谢 我发现我可以直接使用 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)