2017-07-27 33 views
7

मैं सेटअप जेनकींस केवल उन जो ईमेल-ext प्लगइन का उपयोग कर निर्माण तोड़ दिया करने के लिए ईमेल भेजने के लिए है, लेकिन मैं इस त्रुटि हो रही है:जेनकींस ईमेल प्लगइन उपयोगकर्ता के लिए जो निर्माण तोड़ दिया करने के लिए ईमेल भेजने के लिए नहीं है

Not sending mail to unregistered user [email protected] because your SCM claimed this was associated with a user ID ‘John Smith' which your security realm does not recognize; you may need changes in your SCM plugin

मुझे वास्तव में यह समझ में नहीं आता कि यह त्रुटि क्या है, क्या हमारे एससीएम में समस्या है, या ईमेल प्लगइन में समस्या है? ईमेल प्रतिबद्धता इतिहास से लिया जाता है, क्या मुझे उन्हें कहीं पंजीकरण करना चाहिए ताकि जेनकींस काम करना शुरू कर दे?

संदर्भ के लिए, this is the code around the error message प्लगइन के स्रोत कोड में:

    } 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 कैसे सक्षम करूं?

त्रुटि संदेश इस bug report में भी उल्लेख किया गया है।

+0

'स्थिर/* अंतिम नहीं// बूलियन एस END_TO_UNKNOWN_USERS = Boolean.getBoolean (MailSender.class.getName() +" .SEND_TO_UNKNOWN_USERS "); ' तो ... बस उस बूलियन को सेट करने के तरीके को समझें क्योंकि आपके पास स्रोत कोड है? – Shark

+0

@ शार्क मेरे पास संदर्भ के लिए है, मैं इसे स्रोत से संकलित नहीं करता हूं। मुझे इसे किसी भी तरह से कॉन्फ़िगरेशन से सेट करने की आवश्यकता है। – sashoalm

+1

'-Dudson.tasks.MailSender.SEND_TO_UNKNOWN_USERS = सच' शायद? जैसा कि पढ़ें [यहां] (https://wiki.jenkins.io/display/JENKINS/Email-ext+plugin) 'ईमेल-ext' प्लगइन विकी – Shark

उत्तर

6

ठीक है, कुछ प्रयोगों के बाद यह मैं क्या पता चला है:

जेनकींस committer (नहीं लेखक) के ई-मेल भाग लेता है। कि कि तरह लग रहा है एक प्रतिबद्ध संदेश के लिए उदाहरण के लिए:

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 

जेनकींस "committer1" ले जाएगा, और उपयोगकर्ता आईडी "committer1" और ईमेल "" के साथ लोगों को के तहत एक नया उपयोगकर्ता बनाने के। ,

enter image description here

तो यह एक तरह से त्रुटि को ठीक करने के लिए है: जब तक कि उपयोगकर्ता हालांकि एक पासवर्ड है, यह अपंजीकृत पर विचार किया जाएगा, ताकि आप उस उपयोगकर्ता के लिए कॉन्फ़िगर करने के लिए जाना है और इसे में पासवर्ड फ़ील्ड जोड़ने की जरूरत लेकिन आपको इसे हर उपयोगकर्ता के लिए करना है और एक बड़ी टीम में यह कठिन हो सकता है।

+0

स्वीकार्य उत्तर होना चाहिए क्योंकि यह सुरक्षा को अक्षम करने से बेहतर है। –

+1

ldap का उपयोग करते समय यह संभव नहीं है और मैं सक्रिय निर्देशिका मानता हूं – aflat

5

अपने जेनकींस स्टार्टअप स्क्रिप्ट

-Dhudson.tasks.MailSender.SEND_TO_UNKNOWN_USERS=true 

नवीनतम जेनकींस सुरक्षा के निर्देश केवल पंजीकृत उपयोगकर्ता के लिए मेल भेजने की अनुमति देने में लाइन bellow रखो। ऊपर दी गई रेखा इस कॉन्फ़िगरेशन को बाईपास करें।

+1

जेनकिन्स कैसे निर्णय लेता है कि कोई उपयोगकर्ता पंजीकृत है या नहीं? क्या यह जांचता है कि एससीएम का लेखक नाम मौजूदा उपयोगकर्ता के उपयोगकर्ता आईडी (उपयोगकर्ता नाम के विपरीत) जैसा ही है? – sashoalm

+0

हां। यदि कमिटर नाम joao.vitorino है और लॉगिन joao.vitorino के साथ एक उपयोगकर्ता है और ईमेल पता कॉन्फ़िगर किया गया है, जेनकींस मैच करते हैं और ईमेल भेजते हैं। आप जेनकिंस –

+0

में उपयोगकर्ता को पोस्ट या कॉन्फ़िगर करने वाले कॉन्फ़िगरेशन को जोड़कर हल कर सकते हैं आप अपने विकास उपयोगकर्ताओं की पहचान करने के लिए ActiveDirectory या LDAP का उपयोग करने के लिए जेनकींस कॉन्फ़िगर भी कर सकते हैं, इसलिए आपको प्रत्येक उपयोगकर्ता को जेनकींस में अलग-अलग कॉन्फ़िगर करने की आवश्यकता नहीं है। –

संबंधित मुद्दे