Pada hari yang saya dapati pautan "Mailto:" adalah mulia. Saya boleh menerbitkan alamat saya di laman web dan sesiapa sahaja boleh menghantar e -mel kepada saya dengan satu klik. Ini adalah pada hari -hari yang lebih tidak bersalah di web - sebelum penuai spam mengambil alih. Gunakan "mailto:" hari ini dan mesej viagra pertama anda akan muncul 30 saat kemudian. Jadi bagaimana anda boleh menerbitkan alamat e -mel tanpa menarik perhatian yang tidak diingini dari spammer?
Penyelesaian yang paling jelas ialah menggunakan e-mel yang tidak dapat dibaca mesin di HTML anda, mis. "Bob (at) Bobsdomain dot com". Walaupun ini menjadikan sukar untuk spammer, ia juga menjadikan sukar bagi pengguna anda.
Pilihan lain adalah untuk menghasilkan alamat e -mel menggunakan JavaScript, mungkin dengan penyambungan rentetan sedikit atau pengekodan misalnya.
<p>contact
<script type="text/javascript">
document.write('<a href="mai'+"lto"+"bob"+'@'+'bobsdomain.com">bob@'+"bobsdomain.com</a>");
</script>
</p>
<p>Contact <a href="contact.html" >bob (at) bobsdomain dot com</a></p>
<script type="text/javascript" src="email.js"></script>
function EmailUnobsfuscate() {
// find all links in HTML
var link = document.getElementsByTagName && document.getElementsByTagName("a");
var email, e;
// examine all links
for (e = 0; link && e < link.length; e++) {
// does the link have use a class named "email"
if ((" "+link[e].className+" ").indexOf(" email ") >= 0) {
// get the obfuscated email address
email = link[e].firstChild.nodeValue.toLowerCase() || "";
// transform into real email address
email = email.replace(/dot/ig, ".");
email = email.replace(/(at)/ig, "@");
email = email.replace(/s/g, "");
// is email valid?
if (/^[^@]+@[a-z0-9]+([_.-]{0,1}[a-z0-9]+)*([.]{1}[a-z0-9]+)+$/.test(email)) {
// change into a real mailto link
link[e].href = "mailto:" + email;
link[e].firstChild.nodeValue = email;
}
}
}
}
Akhirnya, kita perlu memastikan fungsi berjalan pada beban halaman dengan menambahkan garis ke bahagian bawah e -mel.js:
window.onload = EmailUnobsfuscate;
Hasrat artikel ini adalah untuk menunjukkan konsep dan bukannya kod sebenar. Walaupun contohnya berfungsi, saya cadangkan anda:
Semoga berjaya.
Soalan Lazim mengenai Obfuscation E -mel
Apakah tujuan utama e -mel Obfuscation?
Obfuscation e -mel digunakan terutamanya untuk melindungi alamat e -mel daripada dituai oleh spammer. Ia melibatkan penyamaran atau pengekodan alamat e -mel dengan cara yang menjadikannya sukar untuk program automatik, yang dikenali sebagai bot, untuk mengenali atau mengumpulnya. Walau bagaimanapun, ia masih boleh dibaca dan boleh digunakan untuk pelawat manusia. Teknik ini penting bagi pemilik laman web yang ingin memaparkan alamat e -mel mereka secara terbuka tetapi ingin mengelakkan menerima e -mel yang tidak diminta. Ini boleh dilakukan dalam beberapa cara, seperti menggunakan entiti watak, JavaScript, atau trik CSS. Sebagai contoh, alamat e -mel seperti "info@example.com" boleh diabaikan sebagai "maklumat (at) contoh (dot) com". Walaupun terdapat masalah, alamat e -mel tetap berfungsi dan boleh digunakan secara normal oleh pelawat manusia. Bot yang canggih mungkin masih dapat mentafsirkan alamat e -mel yang diselimuti. Walau bagaimanapun, ia menambah lapisan perlindungan tambahan dan menjadikannya lebih sukar bagi spammer untuk menuai alamat e -mel anda.
Bolehkah e -mel e -mel digunakan dengan mana -mana alamat e -mel? Ia adalah teknik yang bebas daripada pembekal e -mel atau domain alamat e -mel. Ia boleh digunakan dengan alamat e-mel peribadi, perniagaan, atau institusi.
Atas ialah kandungan terperinci Cara menghentikan penuaian spam dengan obfuscation e -mel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!