web-dev-qa-db-ja.com

Jenkinsメールプラグインはビルドを壊したユーザーにメールを送信しません

Email-extプラグインを使用してビルドを中断したユーザーにのみメールを送信するようにJenkinsをセットアップしましたが、このエラーが発生しています:

未登録のユーザー[email protected]にメールを送信しない。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"
                    ........

SEND_TO_UNKNOWN_USERSを有効にするにはどうすればよいですか?

エラーメッセージは、この バグレポート にも記載されています。

18
sashoalm

OK、いくつかの実験の後、これは私が見つけたものです:

Jenkinsは、コミッター(作成者ではなく)の電子メール部分を取ります。たとえば、次のようなコミットメッセージの場合:

Author: John Smith <[email protected]>  2017-07-27 17:15:39
Committer: John Doe <[email protected]>  2017-07-27 17:15:39
Parent: 9c3ff18dda8ca6f7b7ac4ebab4c76d3c85891a33 (commit)
Branch: master

Jenkinsは「committer1」を取得し、ユーザーID「committer1」および電子メール「」を持つPeopleの下に新しいユーザーを作成します。ただし、そのユーザーがパスワードを持っていない場合は、登録されていないと見なされるため、そのユーザーの[設定]に移動してパスワードフィールドを追加する必要があります。

enter image description here

したがって、これはエラーを修正する1つの方法ですが、すべてのユーザーに対してそれを行う必要があり、大きなチームでは面倒な場合があります。

13
sashoalm

バージョンV2.61以降の場合、これはラジオボタンで設定できます。

に行く

Jenkinsの管理->システムの設定->拡張電子メール通知

のラジオボタンをオンにします。未登録ユーザーへの送信を許可します

enter image description here

31
sha12

Jenkinsの起動スクリプトに次の行を追加します

-Dhudson.tasks.MailSender.SEND_TO_UNKNOWN_USERS=true

最新のJenkinsセキュリティディレクティブは、登録ユーザーへのメール送信のみを許可します。上記の行は、この構成をバイパスします。

8
Joao Vitorino

Jenkinsが電子メールアドレスの最初の部分を取得してユーザーを作成すると、jenkinsユーザー名が電子メールアドレスの最初の部分になるようにチームを作成しました。これにより、2人のユーザーを別々に管理するオーバーヘッドがなくなりました。

1
Clarkey