Jenkins邮件扩展插件认为我没有配置收件人

28
我正在使用Jenkins 2.2和email-ext插件 2.42(都是最新版本,我的所有其他插件也是)。 我的全局配置设置为具有单个明确的收件人,我的项目正在使用默认电子邮件通知配置(即发送到$DEFAULT_RECIPIENTS)。 我还在项目中设置了一个明确的收件人。 在这两个配置中,作业的控制台输出显示:
尝试向空收件人列表发送电子邮件,已忽略。
这似乎是https://issues.jenkins-ci.org/browse/JENKINS-13583,但是 1. 四年前已标记为已解决,2. 当我使用基本的内置通知时,我会收到电子邮件。 是否还有其他人遇到了email-ext的这个问题?

在文档中,有一个“to:”参数,因此您可以仅指定收件人,而无需费心解决“recipientProviders”的复杂性。 - MarkHu
4个回答

51

事实证明,插件配置有些非直观;必要的设置被隐藏在一个高级按钮后面。我在https://issues.jenkins-ci.org/browse/JENKINS-34731 中得到了答案,现在它的工作方式如下:

在高级设置中,触发器 -> 失败 - 任何列表默认列出了“开发人员”,但没有“收件人列表”。


谢谢Chris。你能说明一下你所指的配置吗? - Pratik Khadloya
8
在高级设置中的触发器 -> 失败 - 任何列表默认情况下会包括"开发人员",但不包括“收件人列表”。 - Chris Nelson
2
高级设置是关于什么的,“扩展电子邮件通知”?如果我们正在讨论的是这个,那么这个答案可能已经过时了,因为没有触发器->失败的设置。 - vincedjango
我可以确认这个答案仍然正确。高级设置用于可编辑的电子邮件通知。 - Mansour.M
对于那些感到困惑的人,Jenkins管理页面和可编辑电子邮件通知的项目配置部分都有高级设置。您必须在作业的电子邮件通知的高级部分中删除开发人员选项并添加收件人列表。 - aswathy
没有明确的语法指导和对潜在问题的实际解释。 - undefined

4

对于那些与Job DSL组合使用此插件的人,我必须明确地向不同的触发器添加sendTo { recipientList() }块。

因此,我的DSL看起来像这样:

extendedEmail {
    recipientList('${EMAIL_RECIPIENTS}')
    triggers {
        failure {
            subject('The subject')
            content("The content")
            sendTo {
                recipientList()
            }
        }
    }
}

0

我通过反复尝试终于找到了问题所在。其实完全没有必要遇到这种麻烦。原因是在可编辑电子邮件通知触发条件的高级设置中,默认情况下收件人列表为空,所有你在外部进行的设置都将被覆盖。尝试向空收件人列表发送电子邮件会被忽略。尝试向空收件人列表发送电子邮件被忽略。 输入图像说明


0

不要使用$DEFAULT_RECIPIENTS,而是使用to:

emailext(
    to: 'somename@emailprovider.com',
    body: '${DEFAULT_CONTENT}', 
    mimeType: 'text/html',
    subject: '${DEFAULT_SUBJECT}',
    replyTo: '$DEFAULT_REPLYTO'    
    )
}

参考: https://dev59.com/x1oU5IYBdhLWcg3wu4ni#39499554


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接