Email Jenkins电子邮件插件不';t向破坏生成的用户发送电子邮件

Email Jenkins电子邮件插件不';t向破坏生成的用户发送电子邮件,email,jenkins,Email,Jenkins,我已设置Jenkins只向使用email ext插件破坏构建的用户发送电子邮件,但我遇到了以下错误: 不向未注册用户发送邮件user@example.com因为您的SCM声称这与您的安全领域无法识别的用户ID“John Smith”关联;您可能需要更改SCM插件 我真的不明白这个错误意味着什么,是我们的SCM中的问题,还是电子邮件插件中的问题?这些电子邮件是从提交历史记录中提取的,我是否应该在某个地方注册它们以便Jenkins开始工作 作为参考,在插件的源代码中:

我已设置Jenkins只向使用email ext插件破坏构建的用户发送电子邮件,但我遇到了以下错误:

不向未注册用户发送邮件user@example.com因为您的SCM声称这与您的安全领域无法识别的用户ID“John Smith”关联;您可能需要更改SCM插件

我真的不明白这个错误意味着什么,是我们的SCM中的问题,还是电子邮件插件中的问题?这些电子邮件是从提交历史记录中提取的,我是否应该在某个地方注册它们以便Jenkins开始工作

作为参考,在插件的源代码中:

                    } catch (UsernameNotFoundException x) {
                        if (SEND_TO_UNKNOWN_USERS) {
                            listener.getLogger().printf("Warning: %s is not a recognized user, but sending mail anyway%n", userAddress);
                        } else {
                            listener.getLogger().printf("Not sending mail to unregistered user %s because your SCM"
                    ........
如何启用
向未知用户发送


该错误消息也在本文中提到。

在jenkins启动脚本中添加下面的行

-Dhudson.tasks.MailSender.SEND_TO_UNKNOWN_USERS=true

最新的Jenkins安全指令只允许向注册用户发送邮件。上面的行绕过此配置。

好的,经过一些实验,我发现:

詹金斯接受提交人(而不是作者)的电子邮件部分。例如,对于如下所示的提交消息:

Author: John Smith <author1@example1.com>  2017-07-27 17:15:39
Committer: John Doe <committer1@example2.com>  2017-07-27 17:15:39
Parent: 9c3ff18dda8ca6f7b7ac4ebab4c76d3c85891a33 (commit)
Branch: master
作者:约翰·史密斯


因此,这是修复错误的一种方法,但您必须为每个用户执行此操作,而且在大型团队中,这可能会很乏味。

对于V2.61版或更高版本,可以通过单选按钮进行配置

管理Jenkins->配置系统->扩展电子邮件通知


并勾选允许发送给未注册用户的单选按钮


编辑:如果这不起作用,请参阅以获取其他解决方案。

鉴于jenkins获取电子邮件地址的第一部分并创建了一个用户,我让我的团队将其jenkins用户名作为电子邮件地址的第一部分。这消除了必须维护两个独立用户的任何开销。

static/*not final*/boolean SEND_to_UNKNOWN_users=boolean.getBoolean(mailssender.class.getName()+“.SEND_to_UNKNOWN_users”)所以。。。既然你有了源代码,就想办法设置布尔值吧?@Shark我有它作为参考,我不是从源代码编译的。我需要以某种方式从配置中进行设置。
-Dhudson.tasks.mailssender.SEND\u to\u UNKNOWN\u USERS=true
也许?如
电子邮件ext
插件wiki上所述,可以从web界面进行设置吗?我试着从managejenkins->Configure System->Global Properties->Environment Variables中设置它,但是没有发生任何事情。看起来电子邮件扩展插件在系统配置中添加了一个复选框:Jenkins如何决定用户是否注册?它是否检查SCM中的作者名称是否与现有用户的用户ID(而不是用户名)相同?是。如果提交人的名字是joao.vitorino,并且有一个登录名为joao.vitorino并配置了电子邮件地址的用户,jenkins将进行匹配并发送电子邮件。您可以通过添加我发布的配置或在Jenkins中配置用户来解决此问题。您还可以使用configure Jenkins使用ActiveDirectory或LDAP来标识您的开发用户,因此您不需要在Jenkins.中单独配置每个用户,也不需要将其放入。应该有可以接受的答案,因为这比禁用安全性要好。使用ldap时不可能做到这一点,我假设active Directory也可以为您的公司域设置“允许的域”,例如:@mycompany.com出于安全原因,“允许发送给未注册的用户”和“允许的域”在Jenkins ver中不起作用。2.164.1“允许发送给未注册用户”在Jenkins版本中也不起作用。2.198Hm,我想接受这个答案,因为这是投票最多的答案,但是上面的两条评论让我不确定。它是否适用于所有人?