मुझे पता है कि मेरा उत्तर बहुतों को पसंद नहीं आएगा, लेकिन कृपया नीचे अंगूठे लगाने से पहले दिए गए बिंदुओं पर विचार करें।
आसानी से पठनीय कुछ भी आसानी से मशीन द्वारा आसानी से पढ़ा जा सकता है। भले ही उनकी हरकतें हमें बेवकूफ़ लगती हों, लेकिन वे मूर्ख लोग नहीं हैं। वे अभिनव और संसाधनपूर्ण हैं। वे ई-मेल की कटाई के लिए सिर्फ बॉट्स का उपयोग नहीं करते हैं, उनके पास उनके निपटान में तरीकों की अधिकता है और इसके अलावा, वे बस ई-मेल की अच्छी ताजा सूची के लिए भुगतान करते हैं। इसका क्या मतलब है, कि उन्हें अपनी नौकरियों को अंजाम देने के लिए दुनिया भर में हजारों ब्लैक-हैट हैकर्स मिले। लोग मैलवेयर को कोड करने के लिए तैयार होते हैं जो अन्य लोगों के ब्राउज़रों के स्क्रीन को खुरचते हैं जो अंततः किसी भी तरीके का उपयोग करता है जिसे आप बेकार में प्राप्त करने की कोशिश कर रहे हैं। इस धागे को पहले ही 10+ ऐसे लोगों द्वारा पढ़ा जा चुका है और वे हम पर हंस रहे हैं। उनमें से कुछ भी आँसू से ऊब सकते हैं यह पता लगाने के लिए कि हम उनके लिए एक नई चुनौती नहीं दे सकते।
ध्यान रखें कि आप अंततः अपने समय को बचाने की कोशिश नहीं कर रहे हैं बल्कि दूसरों के समय को भी बचा सकते हैं। इस वजह से, कृपया यहां कुछ अतिरिक्त समय बिताने पर विचार करें। कोई आसान-से-निष्पादित जादू की गोली नहीं है जो काम करेगी। यदि आप ऐसी कंपनी में काम करते हैं जो साइट पर 100 लोगों के ई-मेल प्रकाशित करती है और आप प्रति व्यक्ति प्रति दिन 1 स्पैम ई-मेल को कम कर सकते हैं, तो हम प्रति वर्ष 36500 स्पैम ईमेल के बारे में बात कर रहे हैं। यदि इस तरह के ई-मेल को हटाने में औसतन 5 सेकंड लगते हैं, तो हम सालाना 50 घंटे काम कर रहे हैं। झुंझलाहट की कम राशि का उल्लेख करने के लिए नहीं। तो, क्यों नहीं इस पर कुछ घंटे बिताएं?
यह केवल आप और वे लोग नहीं हैं जो ई-मेल प्राप्त करते हैं जो समय को संपत्ति मानते हैं। इसलिए, आपको ई-मेल पतों को इस तरह से बाधित करने का एक तरीका खोजना होगा, ताकि वह इसे क्रैक करने के लिए भुगतान न करें। यदि आप ई-मेल को बाधित करने के लिए कुछ व्यापक रूप से उपयोग की जाने वाली विधि का उपयोग करते हैं, तो यह वास्तव में इसे दरार करने के लिए भुगतान करता है। नतीजतन, पटाखा हजारों पर हाथ होगा, अगर दसियों या सैकड़ों हजारों ई-मेल नहीं होंगे। और उनके लिए, उन्हें पैसे मिलेंगे।
तो, आगे बढ़ो और अपनी खुद की विधि कोड करें। यह एक दुर्लभ मामला है जहां पहिया को फिर से मजबूत करना वास्तव में भुगतान करता है। एक ऐसी विधि का उपयोग करें जो मशीन पठनीय नहीं है और एक जो उपयोगकर्ता के अनुभव का त्याग किए बिना कुछ उपयोगकर्ता सहभागिता की आवश्यकता होगी।
मैंने जो कुछ भी मतलब है उसका एक उदाहरण कोड करने के लिए कुछ 20 मिनट बिताए। उदाहरण में, मैंने नॉकआउटJS का उपयोग केवल इसलिए किया क्योंकि मुझे यह पसंद है और मुझे पता है कि आप शायद इसका उपयोग स्वयं नहीं करेंगे। लेकिन यह वैसे भी अप्रासंगिक है। यह एक कस्टम समाधान है जो व्यापक रूप से उपयोग नहीं किया जाता है। इसे क्रैक करने से ऐसा करने का कोई इनाम नहीं होगा क्योंकि इसे करने का तरीका केवल विशाल इंटरनेट में एक पेज पर काम करेगा।
यहाँ की बेला है: http://jsfiddle.net/hzaw6/
नीचे दिए गए कोड का मतलब अच्छे कोड का उदाहरण नहीं है। लेकिन कोड का एक त्वरित नमूना जो मशीन के लिए यह पता लगाने के लिए बहुत कठिन है कि हम यहां ई-मेल भी संभालते हैं। और यहां तक कि अगर यह किया जा सकता है, तो यह बड़े पैमाने पर निष्पादित करने के लिए भुगतान करने वाला नहीं है।
और हां, मुझे पता है कि यह IE = lte8 पर काम नहीं करता है क्योंकि अपरिभाषित या अशक्त संदर्भ की 'गुण' प्राप्त करने में असमर्थ है, लेकिन मैं बस परवाह नहीं करता हूं क्योंकि यह केवल पद्धति का डेमो है, वास्तविक कार्यान्वयन नहीं, और उत्पादन के रूप में इसका उपयोग करने का इरादा नहीं है। बेझिझक अपने को कोड करें जो कूलर, तकनीकी रूप से अधिक ठोस आदि है।
ओह, और कभी भी कभी भी html या जावास्क्रिप्ट में कुछ मेल या ईमेल का नाम न दें। मेल या ईमेल नाम की किसी भी चीज़ के लिए DOM और विंडो ऑब्जेक्ट को स्क्रैच करना बहुत आसान है और अगर इसमें ऐसा कुछ है जो ई-मेल से मेल खाता है। यही कारण है कि आप ऐसा कोई भी चर कभी नहीं चाहते हैं जिसमें ई-मेल शामिल हो, जो पूर्ण रूप में हो और ऐसा इसलिए भी है क्योंकि आप चाहते हैं कि उपयोगकर्ता ऐसे चर असाइन करने से पहले पृष्ठ के साथ सहभागिता करें। यदि आपके जावास्क्रिप्ट ऑब्जेक्ट मॉडल में DOM रेडी स्टेट पर कोई ई-मेल एड्रेस है, तो आप उन्हें स्पैमर्स के सामने ला रहे हैं।
HTML:
<div data-bind="foreach: contacts">
<div class="contact">
<div>
<h5 data-bind="text: firstName + ' ' + lastName + ' / ' + department"></h5>
<ul>
<li>Phone: <span data-bind="text: phone"></span></li>
<li><a href="#999" data-bind="click:$root.reveal">E-mail</a> <span data-bind="visible: $root.msgMeToThis() != ''"><input class="merged" data-bind="value: mPrefix" readonly="readonly" /><span data-bind="text: '@' + domain"></span></span></li>
</ul>
</div>
</div>
</div>
जेएस
function ViewModel(){
var self = this;
self.contacts = ko.observableArray([
{ firstName:'John', mPrefix: 'john.doe', domain: 'domain.com', lastName: 'Doe', department: 'Sales', phone: '+358 12 345 6789' },
{ firstName:'Joe', mPrefix: 'joe.w', domain: 'wonder.com', lastName: 'Wonder', department: 'Time wasting', phone: '+358 98 765 4321' },
{ firstName:'Mike', mPrefix: 'yo', domain: 'rappin.com', lastName: 'Rophone', department: 'Audio', phone: '+358 11 222 3333' }
]);
self.msgMeToThis = ko.observable('');
self.reveal = function(m, e){
var name = e.target.attributes.href.value;
name = name.replace('#', '');
self.msgMeToThis(name);
};
}
var viewModel = new ViewModel();
ko.applyBindings(viewModel);