pipeline
{
agent any
stages
{
stage ('Start')
{
steps
{
echo 'Hello'
}
}
}
post
{
success
{
emailext (
to: 'me@domain.zzz',
subject: 'Test subject',
body: 'Test body'
)
}
}
}
这个简单的Jenkins管道似乎成功地发送了电子邮件(输出为:Sending email to: me@domain.zzz
),但收件箱中从未收到这些电子邮件。
Jenkins的日志里什么都没有。
我可以从Manage Jenkins -> Configure System -> E-mail Notification
成功发送测试邮件。
这里我正在使用Email Extension plugin。有没有办法从电子邮件扩展插件发送测试邮件?有没有其他方法来找出为什么电子邮件没有发送/接收?
2条答案
按热度按时间qcbq4gxm1#
首先:在
Manage Jenkins -> Configure System -> E-mail Notification -> Advanced
下检查Enable Debug Mode
。这会在作业运行后提供大量信息!问题是 TLS 没有为电子邮件扩展插件启用,因为只有一个SSL复选框可用。当使用经典的
Manage Jenkins -> Configure System -> E-mail Notification
时-有一个TLS复选框,但这里没有。The solution以在Debian Linux上启用startTLS:登录Jenkins并编辑
/etc/default/jenkins
。编辑JAVA_ARGS
并添加以下内容:"-Dmail.smtp.starttls.enable=true"
。最后,这行代码看起来像这样:JAVA_ARGS="-Djava.awt.headless=true -Dmail.smtp.starttls.enable=true"
。重新启动Jenkins:sudo service jenkins restart
.完成此操作后,发送电子邮件即可正常工作。
v7pvogib2#
E-mail Extension插件(此处使用的,如问题所附管道代码中的
emailext
所示)支持SMTP over TLS,并自v2.83起添加了“TLS”配置复选框(请参见release notes)。