سؤال

أريد أن يتمكن الزوار من النقر فوق (أو نسخ) عنوان بريد إلكتروني مباشرة على صفحة الويب الخاصة بي. ومع ذلك ، إذا كان بإمكاني جعل الأمر أكثر صعوبة على الروبوتات والزحفات الأخرى للحصول على عنوان البريد الإلكتروني المذكور وتسجيله في قائمة البريد العشوائي ، فسيكون ذلك رائعًا.

لقد وجدت طرقًا مختلفة للقيام بذلك (أي ترميز روابط HTML) ، إما مع JavaScript أو في HTML الخالص ، ولكن ماذا تنصح يا رفاق؟ تبدو تقنيات JavaScript أكثر تعقيدًا ، ولكن قد يؤثر ذلك على المستخدمين الذين تم إيقاف تشغيله ، ويرحافون شرعية مثل Google.

من ناحية أخرى ، يبدو أن HTML أساسي بعض الشيء ، وكان ينبغي على كتاب الروبوت أن يكونوا قد اكتشفوا ذلك الآن ...

هل يجب أن أزعجك ذلك على الإطلاق ، أم هل سيحصل مرسلي البريد العشوائي على بريدي الإلكتروني على أي حال؟ أعلم أن مرشحات antispam تتحسن وأفضل ، ولكن إذا كان بإمكاني فعل شيء أكثر لإبطاء مرشحين البريد العشوائي ، فسأفعل ذلك.

هل كانت مفيدة؟

المحلول

لا يزال JavaScript أحد أفضل Mailto Obfuscator. للمستخدمين الذين يعانون من تعطيل JavaScript ، قد ترغب في استبدال رابط Mailto برابط إلى نموذج جهة اتصال.

ما يلي عبارة

يوجد ايضا نسخة PHP مما سبق لتكون قادرة على توليد رسائل بريد إلكتروني محفوظة من جانب الخادم.

هذا هو رمز JavaScript الذي ستنشئه الأداة أعلاه لإلغاء عنوان بريدي الإلكتروني (التعليقات سليمة):

<script type="text/javascript" language="javascript">
<!--
// Email obfuscator script 2.1 by Tim Williams, University of Arizona
// Random encryption key feature by Andrew Moulden, Site Engineering Ltd
// This code is freeware provided these four comment lines remain intact
// A wizard to generate this code is at http://www.jottings.com/obfuscator/
{ coded = "lMnK@wMunFK8MDDMKKt.ktl"
  key = "1DtzZ8TGBuhRjJMKWI4gkUF2qidfOyPmSN7X30Vpso6xvErLnwQCbalA95HcYe"
  shift=coded.length
  link=""
  for (i=0; i<coded.length; i++) {
    if (key.indexOf(coded.charAt(i))==-1) {
      ltr = coded.charAt(i)
      link += (ltr)
    }
    else {     
      ltr = (key.indexOf(coded.charAt(i))-shift+key.length) % key.length
      link += (key.charAt(ltr))
    }
  }
  document.write("<a href='mailto:"+link+"'>Email Me</a>")
}
//-->
</script><noscript><a href='contact-form.html'>Email Me</a></noscript>

نصائح أخرى

هذا يبدو وكأنه طريقة رائعة حقًا تشفر الشخصيات ، والتي أفترض أنها ستهزم روبوتات البريد العشوائي الأساسية:

http://robspangler.com/blog/encrypt-mailto-links-to-stop-email-pam/

لذا

<a href="mailto:test@test.com">Email</a>

يصبح

<a href="&#x6d;&#97;&#105;&#108;&#x74;&#111;&#58;&#116;&#101;&#115;&#116;&#x40;&#x74;&#101;&#115;&#x74;&#x2e;&#x63;&#111;&#109;">Email</a>

إنه أمر جذاب لأنه لا يتطلب أي جافا سكريبت.

مثال Plunker هنا.

أنت استطاع استخدم ال Recaptcha Mailhide وظائف. سيؤدي هذا إلى جعل عناوين البريد الإلكتروني في النموذج use...@domain.tld حيث يكون Ellipsis رابطًا لعرض العنوان الكامل. إنه أمر مرهق بعض الشيء بالنسبة للزائر ولكن يجب أن يعطي حماية متميزة. بعد قولي هذا ، سوف هذه التقنية ليس دع زوارك ينسخون العنوان مباشرة من صفحة الويب الخاصة بك.

لا أحصل على دور "زحف الشرعي" مثل Google. على الأقل ، أنا غير قادر على معرفة سبب قيام Google بفهرسة عنوان البريد الإلكتروني على أي حال. (انظر تعليق OPS أدناه.)

بناءً على إجابة دانيال فاسالو ، إحدى الطرق لتشفير رابط البريد مايو تجنب spambots الذكية التي ستقوم بتقييم JS document.writeسيكون S (كما أشار إلى المتجسد) هو وضع فك التشفير في وظيفة JavaScript التي يتم تقييمها فقط عند النقر فوق الرابط. على سبيل المثال ، باستخدام BASE64 كـ "تشفير":

<script>

  function decryptEmail(encoded) {

    var address = atob(encoded);
    window.location.href = "mailto:" + address;

  }

</script>

<a href="javascript:decryptEmail('dGVzdEB0ZXN0LmNvbQ==');">Email</a>

عمل بلونكر.

لا أدعي أنني أعرف ما إذا كان هذا يمكن أو لا يمكن أن يتفوق عليه زاحف أكثر تطوراً.

يمكنك استخدام الخدمات الخارجية مثل Aemail.com:

eMail هي خدمة إخبارية بريد إلكتروني مجانية تخفي رسائل البريد الإلكتروني باستخدام URL القصيرة التي تعيد توجيه المرسلين إلى Mailto-URL بعد النقر على الرابط.

بعد إدخال بريد إلكتروني في Aemail.com ، ستحصل على عنوان URL قصير ، يمكن استخدامه لاستبدال رابط "Mailto" الخاص بك. بمجرد النقر على الرابط ، سيتم إعادة توجيه المستخدم الخاص بك إلى عنوان URL "Mailto" دون أي إشعار بالسماء. API يمكن استخدامها لإخفاء رسائل البريد الإلكتروني/الحصول على عناوين URL بشكل ديناميكي.

مثال:

<a href="mailto:info@itee.com">Contact</a>

تم استبداله ب

<a href="https://aemail.com/q2">Contact</a>

سوف تبقي رابط البريد الإلكتروني يعمل.

أنا ببساطة استخدم:

<script language="javascript" type="text/javascript">
var pre = "hideme";
document.write("<a href='mailto:" + pre + "@domain.com'>" + pre
+ "@domain.com</a>");
</script>
<noscript>Enable javascript to see our email!</noscript>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top