किसी वेब साइट पर "हमसे संपर्क करें" ईमेल पते को सूचीबद्ध करने का एक अच्छा तरीका क्या है, जबकि संभावना कम करने से यह स्पैम हो जाएगा?
क्या एक छवि में ईमेल पता सबसे अच्छी तकनीक है, या अन्य हैं?
किसी वेब साइट पर "हमसे संपर्क करें" ईमेल पते को सूचीबद्ध करने का एक अच्छा तरीका क्या है, जबकि संभावना कम करने से यह स्पैम हो जाएगा?
क्या एक छवि में ईमेल पता सबसे अच्छी तकनीक है, या अन्य हैं?
जवाबों:
मैं एक जीमेल खाते के माध्यम से सभी संपर्क फ़ॉर्म पास करता हूं, जो वास्तविक ईमेल पते पर मेल करता है। यह मुफ़्त है, यह आसान है, और Gmail का स्पैम पता शीर्ष पायदान पर है।
वेबसाइट बनाते समय इसके लिए किसी अतिरिक्त प्रयास की आवश्यकता नहीं होती है, और यदि आपके माध्यम से कुछ भी मिलता है तो बस जीमेल खाते में लॉगिन करें और इसे स्पैम के रूप में चिह्नित करें।
फिर आप जीमेल इनबॉक्स को या तो स्वचालित रूप से किसी भी चीज़ को संग्रहीत कर सकते हैं जो आगे भेज दिया गया है, या यहां तक कि अगर आप नहीं चाहते कि अतिरिक्त कॉपी को वहां रखा जाए तो उसे हटा दें।
एक ईमेल पर्यवेक्षक का उपयोग करें
मेरा गैर-जवाब यह नहीं करना है। आधुनिक ईमेल सिस्टम, जैसे जीमेल और बाराकुडा एंटी-स्पैम उपकरण, स्पैम को फ़िल्टर करने का एक उत्कृष्ट काम करते हैं। आपके और आपके आगंतुकों के बीच जो भी बाधा डालते हैं, उसका मतलब है निम्न स्तर की सगाई और साइट के प्रकार, बिक्री के संभावित नुकसान के आधार पर।
यदि आप उन उपयोगकर्ताओं के बारे में चिंतित हैं, जिनके पास मूल मेल क्लाइंट स्थापित नहीं है, या जिनके पास mailto नहीं है: हैंडलर को सही तरीके से सेट किया गया है, तो BOTH के साथ एक हमसे संपर्क करें पृष्ठ पर लिंक किया गया ईमेल पता और एक फ़ॉर्म (एक कैप्चा के बिना) है और उपयोगकर्ता को चुनने दें।
स्पैम कष्टप्रद है, लेकिन यह हमारे उपयोगकर्ताओं के लिए सहन करने के लिए हमारा बोझ है।
ई-मेल पते के लिए प्राकृतिक भाषा का उपयोग करें ...
उदाहरण के लिए:
thatguy at gmail dot com
आपको आश्चर्य होगा कि एक बॉट को लिखना कितना कठिन है जो कि प्राकृतिक भाषा को लिखने वाले बॉट को लिखने में अंतर कर सकता है जो कि सिर्फ @ चिन्ह खोजता है और एक सामान्य पते को फिर से खोजता है।
यह 100% मूर्खतापूर्ण नहीं है, लेकिन यह किसी भी तरह की आपत्ति से भी बदतर नहीं है और यह आपके नेत्रहीन उपयोगकर्ताओं और / या उन उपयोगकर्ताओं को अलग नहीं करेगा जिनके पास जावास्क्रिप्ट अक्षम है।
अद्यतन: यहाँ इस तकनीक का एक उदाहरण है क्रिया ।
अपडेट 2:
यह पता चला है कि किसी ने वास्तव में इस पर शोध किया है और इसे ऑनलाइन पोस्ट किया है। परिणाम या मूल लेख का वर्णन करते हुए सुपरयूज़र पोस्ट देखें
thatguy funny-symbol gmail.com
व्यक्तिगत रूप से, मैं साइटों पर ईमेल पते प्रदर्शित नहीं करता हूं, लेकिन इसका उपयोग करने के लिए एक आसान, सुलभ संपर्क फ़ॉर्म के साथ-साथ यह भी संकेत है कि ईमेल किससे है; उपयोगकर्ताओं को साइट के मालिकों और ऑपरेटरों को ईमेल भेजने की अनुमति, बिना ईमेल पते को उजागर किए या विभिन्न जावास्क्रिप्ट हुप्स, आदि के माध्यम से कूदने के लिए।
यह अक्सर जाने का सबसे अच्छा तरीका है अगर आपका स्पैम फ़िल्टरिंग उतना परिष्कृत नहीं है।
वास्तविक पाठ से कुछ शोर को छिपाने के लिए सीएसएस का उपयोग करें (सिर्फ एक पंक्ति में, मैंने इसे तकनीक का बेहतर वर्णन करने के लिए स्वरूपित किया है):
u<span class="spam">noise</span>ser
@<span class="spam">noise</span>
example<span class="spam">noise</span>
.com
और फिर इस छोटे सीएसएस-स्निपेट का उपयोग करें:
.spam { display: none; }
यदि आपको मान्य mailto:
सामग्री की आवश्यकता है, तो आपको इसे डोम में jscript के माध्यम से बनाना होगा, उसके लिए कुछ अन्य उत्तर देखें। लेकिन मैं उसका बहुत बड़ा दोस्त नहीं हूं।
मैं क्या करता हूं ईमेल पते को शब्दों के रूप में लिखें, एक स्पैन टैग में लिपटे <span class="email">joe dot blow at gmail dot com</span>
:। फिर एक पृष्ठ-स्तरीय स्क्रिप्ट चलती है, ऐसे किसी भी स्पैन को हथियाने और प्रत्येक को एक निर्मित ईमेल लिंक के साथ बदल दिया जाता है। यह बहुत अस्पष्ट नहीं हो सकता है, लेकिन मुझे कोई शिकायत नहीं है। साथ ही यदि जावास्क्रिप्ट अक्षम है, तो उपयोगकर्ता अभी भी वास्तविक स्पैन पाठ पढ़ सकता है।
सबसे अच्छा समाधान: एक स्पैम फ़िल्टर का उपयोग करें ।
मैं वास्तव में अपने व्यवसाय के लिए अपने POP3 ईमेल खाते को संभालने के लिए Gmail का उपयोग करता हूं, क्योंकि विभिन्न कंप्यूटरों पर ईमेल की जांच करना बहुत आसान है। जीमेल के स्पैम फिल्टर दुनिया में सबसे अच्छे हैं।
तो आप बस अपने ईमेल पते के रूप में webmaster@example.com प्रदर्शित कर सकते हैं और स्पैम के बारे में भूल सकते हैं।
HTML एन्कोडिंग का उपयोग करके ʉẮᶗ
, ब्राउज़र इसे "abc" की तरह रेंडर करेगा
एक ग्राफिक लाइब्रेरी का उपयोग करें (जैसे कि जीडी जो PHP द्वारा समर्थित है , या इसी तरह) गतिशील रूप से ईमेल पते वाले .png चित्र बनाने के लिए।
मेरे अन्य उत्तर की तुलना में यह समाधान उपयोगकर्ताओं के लिए कम कष्टप्रद है (लेकिन पारदर्शी नहीं है; वे इसे कॉपी और पेस्ट नहीं कर सकते हैं, लेकिन इसे फिर से स्क्रैच से टाइप करना होगा) लेकिन यह भी कम सुरक्षित है: एक कंप्यूटर संभवतः असंबद्ध छवि को पढ़ सकता है।
लेकिन कुल मिलाकर मुझे लगता है कि यह एक अच्छा समझौता है; यह स्पैम बॉट के विशाल बहुमत को रोक देगा।
एक बहुत अच्छा, सही तरीका नहीं है, जबकि ई-मेल पते को जावास्क्रिप्ट के माध्यम से बनाना है। ई-मेल की तलाश करने वाले अधिकांश मकड़ियों जावास्क्रिप्ट को निष्पादित नहीं करते हैं, और इसलिए एक पठनीय ई-मेल पता नहीं मिलता है।
यहाँ सिर्फ एक उदाहरण है कि यह कैसे किया जा सकता है।
मैं ई-मेल पते को एक ई-मेल लिंक में परिवर्तित करने के लिए एक साधारण पायथन स्क्रिप्ट का उपयोग करता हूं जहां ई-मेल पता HTML इकाई एन्कोडेड है। यह उपयोगकर्ता के लिए पूरी तरह से पारदर्शी है, लेकिन सबसे सरल कटाई वाले बॉट्स को हराने के लिए सामग्री को अस्पष्ट करना प्रतीत होता है।
#! /usr/bin/env python3.0
def entity_encode(text):
out = ""
ba = text.encode()
for i in range(len(ba)):
out = out + "&#x{0:02x};".format (ba[i])
return out
def print_email_link(address) :
print('<!-- {0} -->'.format(address))
print('<a href="{0}{1}">{1}</a>'.format(entity_encode("mailto:"), entity_encode(address)))
print_email_link("test123@example.com")
इससे आउटपुट मिलता है
<!-- test123@example.com -->
<a href="mailto:test123@example.com">test123@example.com</a>
जब परिणाम एक वेब पेज में चिपकाया जाता है, तो ब्राउज़र "test123@example.com" को "mailto: test123@example.com" के हाइपरलाइन के रूप में प्रदर्शित करता है, इसलिए यह पते के साथ ही अंतिम उपयोगकर्ता के लिए उतना ही सुविधाजनक है स्पष्ट में। लेकिन यह कई कटाई बॉट को हराने के लिए लगता है।
स्पष्ट रूप से, मैंने वेब के HTML स्रोत में उपयुक्त ई-मेल लिंक को अस्पष्ट ई-मेल लिंक को चिपकाने के बाद पते के सादे ASCII संस्करण के साथ टिप्पणी को हटा दिया।
उपयोगकर्ता को ईमेल पता दिखाने से पहले कैप्चा को हल करने के लिए कहें (या यदि आपके पास संपर्क फ़ॉर्म है, तो उपयोगकर्ता को इसे सबमिट करने से पहले बताएं)।
यह उपयोगकर्ताओं के लिए सबसे अधिक कष्टप्रद है लेकिन निश्चित रूप से सबसे प्रभावी है।
मैं मोटापे के शिकार हूं, जहां ईमेल पते को अनिवार्य रूप से जावास्क्रिप्ट के साथ प्रदान किया जाता है।
उदाहरण के लिए, के my@email.com
रूप में प्रस्तुत किया जा सकता है
<a href="javascript:location='mailto:\u006d\u0079\u0040\u0065\u006d\u0061\u0069\u006c\u002e\u0063\u006f\u006d';void 0">
<script type="text/javascript">document.write('\u006d\u0079\u0040\u0065\u006d\u0061\u0069\u006c\u002e\u0063\u006f\u006d')</script></a>
जहां तक उपयोगकर्ता का सवाल है, यह सामान्य पाठ है और इसे कॉपी और पेस्ट किया जा सकता है। दूसरी ओर बॉट्स के साथ कठिन समय होगा।
यहाँ मैं प्रयोग किया जाता है obfuscator ।
<a href="#" onclick="document.location.href='mailto:...'; return false">
एक रास्ता:
<script language="javascript">
<!--
var name = "user"
var host1 = "gm"
var host2 = "ail.com"
var addr =
document.write("<a href=mai" + "lto:" +
name + "@" + host1 + host2 +
">" + name + "@" + host1 + host2 + "</a>")
//-->
</script>
आप <noscript>
उन लोगों के लिए टैग्स में "Unscramble my email: user at com dot gmail" लिख सकते हैं जिनके पास जावास्क्रिप्ट बंद है। इस तरह आपको हाइपरलिंक कार्यक्षमता मिलती है। आपके पास स्पैमर्स को अपने पते से दूर रखने का एक अच्छा मौका है और जावास्क्रिप्ट वाले लोग बंद या पाठ केवल ब्राउज़र अभी भी अपना ईमेल पता प्राप्त कर सकते हैं।
यदि आप बहुत से लोगों से आपसे संपर्क कर रहे हैं, तो दुनिया की सभी ऑबफ्यूजन तकनीक लंबे समय में मदद नहीं कर सकती हैं। यह सब आपको किसी संदेश को छोड़ने के लिए है और बाद में कुछ मैलवेयर से संक्रमित हो जाता है जो उनके इनबॉक्स / भेजे गए मेल / पता पुस्तिका / जो कुछ भी मान्य पते के लिए स्कैन करता है, और आपका पता इसे सूची से सूची में पारित किया जा रहा है [मेरे पास भी संपर्क हैं जो मूर्खतापूर्ण तरीके से ईमेल पते और पासवर्ड को ऑनलाइन आईडी में डालते हैं, उनमें से सबसे अधिक कारणों के लिए, आपके पास शायद सबसे हाल ही में एक साइट थी, जो किसी की "ईमेल ज्योतिष चार्ट और भविष्यवाणियों" की गणना करने की पेशकश की थी, जो तुरंत सभी को स्पैम कर देती है एक ही साइट और <देवता> के लिए एक निमंत्रण के साथ मूर्ख संपर्क केवल जानता है कि क्या अन्य सूचियों हम एक परिणाम के रूप में अब कर रहे हैं] ।
मेरी सार्वजनिक वेब साइटों पर पता सिर्फ एक फेंक-दूर का पता नहीं है - यह एक फेंक-दूर उप-डोमेन पर है। यदि मुझे उस उप-डोमेन पर स्पैम मिलना शुरू हो जाता है तो मैं एक नया निर्माण करता हूं, उन साइटों को अपडेट करें जहां मेरे संपर्क विवरण सूचीबद्ध हैं, और थोड़े समय बाद मैं DNS रिकॉर्ड से उप-डोमेन को पूरी तरह से हटा देता हूं। यदि आप ऐसा करते हैं, या कोई अन्य फेंक-दूर पता तकनीक है, तो सुनिश्चित करें कि आप स्पष्ट करें (पते को सूचीबद्ध करने वाले किसी भी पृष्ठ पर और उस पते का उपयोग करके आपके द्वारा भेजे गए किसी भी मेल के पाद लेख में) पता भविष्य में बदल जाएगा और यदि लोग कर सकते हैं वे सही पता है, यह सुनिश्चित करने के लिए उन्हें वापस जाना चाहिए।
लोगों को क्लिक करने के लिए बस एक साधारण पता होने का फायदा है (यदि उनका ब्राउज़र + मेलर उस तरह से जुड़ा हुआ है) या कॉपी + पेस्ट को बिना पते के एडिट करने के लिए अपने दिमाग का उपयोग करने की आवश्यकता के बिना (मुझे हमेशा आश्चर्य होता है कि कितने से अन्यथा बुद्धिमान और चौकस लोग उस तरह का अधिकार प्राप्त नहीं कर सकते हैं)। इसका अर्थ यह भी है कि मेरे मेल सर्वर ने अपने दिन समाप्त नहीं किए हैं। "रैंडम" पतों (aaron @, adam @, amy01 @, ...) को भेजे गए संदेशों को समय-समय पर उप-डोमेन पर भेजते रहते हैं। यह अंधे या खराब तरीके से उपयोग किए गए स्क्रीन-पाठकों को भ्रमित नहीं करता है।
एक अन्य विकल्प जो मैंने अभी तक कोशिश नहीं किया है वह है ईमेल पते और अन्य विवरणों में पढ़ने के लिए AJAX अनुरोध का उपयोग करना। यह document.write
आधारित आक्षेप से थोड़ा अधिक प्रभावी हो सकता है , हालांकि वेब सर्वर पर थोड़ा अतिरिक्त भार जोड़ देगा।
मैं इसके बजाय "मुझसे संपर्क करें / हमसे" फ़ॉर्म का उपयोग करता था, लेकिन मैंने पाया कि वे जितना संभव हो सके, कभी-कभी अधिक से अधिक, सादे-पाठ ईमेल पतों पर स्पैम करते हैं - कभी-कभी स्क्रिप्ट के द्वारा जो खाता बनाने के लिए फ़ॉर्म का उपयोग करने की कोशिश कर रहे हैं बजाय इसे संपर्क फ़ॉर्म के रूप में उपयोग करें।
यदि आपके पास एक बॉट फिल्टर (1x1px, सबनेट, ज्ञात बॉट्स, जावास्क्रिप्ट डिटेक्शन, http रेफ़रर और ब्राउज़र एजेंट का उपयोग करके) है, तो आप इसकी बॉट की जानकारी को आसानी से प्रदर्शित नहीं कर सकते हैं।
PHP में समाधान:
<?
if (!isbot()) {
echo 'mailto:'.$email_address_for_real_people;
}
else {
echo 'mailto:yourself_bot@'.$bots_domain_address;
}
?>
isbot()
एक उपयोगकर्ता-निर्मित फ़ंक्शन है जो आपके पास बॉट फ़िल्टर रूटीन को इंगित करता है।
सबसे आसान बात यह है कि एक संपर्क फ़ॉर्म का उपयोग करना है जहां एक डिफ़ॉल्ट पता है, लेकिन उपयोगकर्ता को यह चुनने की क्षमता भी है कि संचार किसे जाना चाहिए (विपणन, बिक्री, तकनीकी सहायता, आदि)। फिर, पोस्ट-डाउन डेटा के मूल्य के आधार पर सर्वर द्वारा उचित ईमेल पते पर डेटा भेजा जाता है।
इस संपर्क सूची को डेटाबेस तालिका से बाहर चलाएं ताकि आप ड्रॉप-डाउन में प्रविष्टियों को आसानी से अपडेट / जोड़ सकें। इस तरह आप स्पैम बॉट की विस्तृत दुनिया में किसी भी प्रकार के पते को उजागर नहीं कर रहे हैं, और फिर भी अपने उपयोगकर्ताओं को प्रतिक्रिया में भेजने का एक शानदार तरीका दे सकते हैं।
नही हो सकता भाई! - हाँ रास्ता, जोस!
a href="mailto:"
ईमेल पतों की कटाई को रोकने का कोई तरीका नहीं है । यह लंबे समय से माना जाता है कि जावास्क्रिप्ट का उपयोग करना सबसे कटाई बॉट को रोकने का एक अच्छा तरीका है, लेकिन आजकल बॉट इस पद्धति को हराने में बहुत अच्छे हैं। वे उन चित्रों को भी हरा सकते हैं जिनमें ईमेल पते शामिल हैं, उसी तरह वे डिकैप्टा सॉफ़्टवेयर का उपयोग करके कैप्चा को हरा सकते हैं।
बेहतर तरीका है!
बेहतर दृष्टिकोण एक प्रतिष्ठित मेल सेवा का उपयोग करना होगा जो अच्छा स्पैम अवरोधन प्रदान करता है। Google जी सूट और माइक्रोसॉफ्ट ऑफिस 365 एक एल्गोरिथ्म का उपयोग करते हैं, जो बाजार के किसी भी सॉफ्टवेयर के लिए बेजोड़ है, ज्यादातर इसलिए कि वे एक दिन में लाखों ईमेल प्राप्त करते हैं और वे आपको ईमेल करने के प्रयास से बहुत पहले ही स्पैमर को 'जानने' और ब्लैकलिस्ट करने में सक्षम हैं।
वास्तव में एक साल पहले Google ने कहा था कि उसकी मशीन लर्निंग तकनीक अब 99.9% जीमेल स्पैम और फ़िशिंग संदेशों को रोकती है, स्थानीय Microsoft एक्सचेंज और मेल सर्वर जो कि plesk / cpanel के पीछे चल रहे हैं, इस सुरक्षा के साथ प्रतिस्पर्धा करने में असमर्थ हैं।
सारांश
एक प्रतिष्ठित मेल सेवा का उपयोग करके स्पैम को ब्लॉक करें जो एआई मशीन सीखने में सक्षम है। आप क्लाउडफ़ेयर का उपयोग करके अपनी साइट पर आने वाले स्पैमर्स को रोककर इसे एक कदम आगे भी ले जा सकते हैं, जो आपकी साइट तक पहुंचने से पहले आक्रामक बॉट्स के एक बड़े हिस्से का पता लगाएगा।
मैंने वर्षों से fred@no-spam.domain.com का उपयोग किया है। उपयोगकर्ता आमतौर पर 'नो-स्पैम' को हटाने के लिए पर्याप्त जानते हैं।
अन्यथा, मैं सिर्फ 'कैप्चा' के साथ संपर्क फ़ॉर्म का उपयोग करता हूं और सीधे वेबसाइट से मेल भेजता हूं।
यहाँ एक अन्य ईमेल ओब्फ़सैक्टर है : एनकोडर , डैन बेंजामिन से। यह एक ऑनलाइन ऐप और मैक के लिए एक स्टैंडअलोन ऐप के रूप में आता है।
एक चीज जो मैं करता हूं वह है स्पैमर्स की जांच के लिए http://www.stopforumspam.com से एपीआई का उपयोग करना । विवरण के लिए मुझसे संपर्क करने में संकोच न करें और मुझे आपकी सहायता करने में खुशी होगी!
बड मंज़
Manz वेब डिजाइन, LLC
यदि आपको जावास्क्रिप्ट का उपयोग करने में कोई आपत्ति नहीं है, तो आप ईमेल पते को बाधित करने के लिए ROT13 जैसी किसी चीज़ का उपयोग कर सकते हैं। उदाहरण के लिए इसे देखें:
http://scott.yang.id.au/2003/06/obfuscate-email-address-with-javascript-rot13/
व्यक्तिगत रूप से, मैं हमसे संपर्क फ़ॉर्म का उपयोग करना पसंद करता हूं और स्पैम्बोट्स के बारे में चिंता नहीं करता, लेकिन निश्चित रूप से यह सब आपकी आवश्यकताओं पर निर्भर करता है।
मैं रनटाइम पर स्क्रिप्ट को आउटपुट करने के लिए कुछ जावास्क्रिप्ट उत्पन्न करने के लिए एक PHP फ़ंक्शन का उपयोग करता हूं । ध्यान दें कि रन-वे पर JS को जेनरेट करने के लिए आपको PHP की आवश्यकता नहीं है, आप स्थानीय स्तर पर JS को एक बार जनरेट कर सकते हैं और फिर अपने पृष्ठ में static JS को शामिल कर सकते हैं।
आप दिए गए HTML में स्वचालित रूप से ईमेल पतों को स्वचालित रूप से स्थगित करने के लिए नीचे दिए गए लिंक के साथ लिंक किए गए फ़ंक्शन का उपयोग कर सकते हैं (जहाँ $ संसाधित किया गया HTML है):
$emailMatches = array();
$matchCount = preg_match_all('/(?:[a-zA-Z0-9_\.\-])+\@(?:(?:[a-zA-Z0-9\-])+\.)+(?:[a-zA-Z0-9]{2,4})+/', $processedContent, $emailMatches);
if($matchCount > 0) {
$emailMatches = $emailMatches[0];
foreach($emailMatches as $email) {
$replacement = createJSMailLink($email);
$processedContent = str_replace($email, createJSMailLink($email), $processedContent);
}
}
यदि आप संपर्क फ़ॉर्म का उपयोग कर रहे हैं, तो आप अपने इनपुट के लिए यादृच्छिक नामों का उपयोग करने की मजेदार तकनीक कर सकते हैं।
उदाहरण के लिए, मैं एक संपर्क फ़ॉर्म बनाता हूं, एक इनपुट के रूप में ईमेल का उपयोग करने के बजाय, मैं नाम (ईएमएन), और टिप्पणी (tnemmoc) के साथ एक ही नाम का उपयोग करूंगा। बॉट वास्तव में नहीं जानते कि वे इनपुट क्या करते हैं, इसलिए वे उन्हें अवहेलना करते हैं।
संपर्क फ़ॉर्म सेट करने के लिए ज़ोहो क्रिएटर का उपयोग करें । आपके द्वारा प्राप्त फ़ीडबैक को एक डेटाबेस पर संग्रहीत किया जाएगा जिसे आप ऑनलाइन एक्सेस कर सकते हैं और यह आपको ईमेल भी किया जाएगा।