email - 无法在我的 Jenkins 管道中触发电子邮件
问题描述
我正在涉足 Jenkins 管道的世界。
我的目标是运行一个简单的脚本,在 linux bash 中运行一个简单的命令,然后在脚本完成后发送一封电子邮件。这是我的脚本:
pipeline {
agent any
stages {
stage('Stage-One') {
steps {
script {
sh "echo 'hi'"
}
}
}
}
post {
always {
script {
emailext body: 'A Test Email',
recipientProviders: [[$class: 'DevelopersRecipientProvider'], [$class: 'RequesterRecipientProvider']],
to: "example@server.com",
subject: 'Test'
}
}
}
}
就我而言,我已在->中的E-mail Notification
设置下将我的工作电子邮件设置为我的电子邮件。我使用相同的电子邮件在其他 Jenkins 项目(即运行 python 脚本/项目)中发送电子邮件,所以这应该可以工作。然而,在实践中,没有收到任何电子邮件,并且查看发送电子邮件的电子邮件帐户表明没有发送任何电子邮件。Jenkins
Configuration
控制台输出中也没有出现错误,但也没有指示成功的消息:
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Stage-One)
[Pipeline] script
[Pipeline] {
[Pipeline] sh
+ echo hi
hi
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Declarative: Post Actions)
[Pipeline] script
[Pipeline] {
[Pipeline] emailext
Sending email to: example@server.com
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
我的 Jenkins 版本是 2.150.1,电子邮件扩展版本是 2.63。谁能概述问题可能出在哪里?奇怪的是我没有收到任何错误。*
解决方案
试试这个在 emailext 之前定义正文的技巧
def emailBody = 'A Test Email'
def emailSubject = "Test"
emailext(mimeType: 'text/html', replyTo: 'xxxx', subject: emailSubject, to: 'xxxx', body: emailBody)
推荐阅读
- react-native - React-Native-Camera Amazon Kindle 7 (5.1.1) 后置摄像头捕捉到纯绿色
- c# - 具有不同函数调用的嵌套 for 循环
- frama-c - Frama-c 执行时间和堆内存边界证明
- reactjs - 未捕获的类型错误:无法读取 null 的属性“SelectedOption”
- javascript - 返回(值);不能正常工作
- python - 在视图中加载 javascript
- python - Python3:BeautifulSoup4 未返回预期值
- python - 一个复选框,取消选中 PyQt5 / PySide2 中的所有其他复选框
- jsf-2 - 如何将现有的 JSFPortlet 转换为 JSON API
- php - 将 MySQL 选择轮询更改为 Laravel 5.5