我發現“ mailto:”鏈接的那一天很光榮。我可以在網頁上發布我的地址,任何人都可以單擊給我發電子郵件。這是在網絡的更無辜的日子裡 - 垃圾郵件收割機接管。今天使用“ mailto:”,您的第一個偉哥消息將在30秒後出現。那麼,如何在不吸引垃圾郵件發送者不必要的關注的情況下發布電子郵件地址?
最明顯的解決方案是在HTML中使用機器可讀電子郵件,例如。 “鮑勃(AT)Bobsomain Dot Com”。儘管這使垃圾郵件發送者很難,但也使您的用戶很難。

另一個選項是使用JavaScript生成電子郵件地址,也許使用一個小字符串串聯或編碼,例如。
<p>contact
<script type="text/javascript">
document.write('<a href="mai'+"lto"+"bob"+'@'+'bobsdomain.com">bob@'+"bobsdomain.com</a>");
</script>
</p>
這將阻止大多數垃圾郵件發送者,但是任何有JavaScript禁用的人都不會看到您的地址。 (我也不建議使用document.write。)
一個更好的解決方案是將技術組合用於阻止垃圾郵件發送者,而不會造成用戶困難。第一步是在我們的HTML中使用人類可讀但防收益的電子郵件地址。我們還將將其作為指向聯繫頁面的鏈接,例如
<p>Contact <a href="contact.html" >bob (at) bobsdomain dot com</a></p>
請注意,我們包括了一類“電子郵件”,因此可以識別我們的鏈接。下一步是編寫一個JavaScript函數,該功能搜索您的頁面以獲取混淆的電子郵件,並將其轉換為真實的“ MailTo:”鏈接。我們將創建一個“ email.js”文件,並將其包含在我們的html中:
<script type="text/javascript" src="email.js"></script>
所需的代碼很短,因此我們不需要JavaScript庫:
電子郵件的內容:js:
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;
}
}
}
}
代碼的解釋:
- >第4行獲取我們的html頁面中的每個鏈接,並通過它們第8行循環。
>
- 第11行檢查一類“電子郵件”的鏈接。
第14行從節點的文本內容中獲取混淆的電子郵件。
第17至19行使用正則表達式將其轉換為真實的電子郵件地址:“ dot”更改為“”。 ,“(at)”已更改為“@”,所有空格均已刪除。 - >
>第22行檢查結果的電子郵件地址有效。 -
第25行和第26行,然後修改DOM節點,然後將其變成真正的“ mailto:”鏈接。 -
最後,我們需要通過在電子郵件底部添加一行來確保該函數在頁面加載上運行。
-
結果:
我們的原始HTML頁面沒有“ mailto:”鏈接,垃圾郵件發送者無法輕易收穫。
>
window.onload = EmailUnobsfuscate;
>大多數用戶(啟用JavaScript的用戶)將看到標準的電子郵件地址和“ mailto:”鏈接。
- 任何未運行JavaScript
本文的這一目的是顯示概念而不是真實的代碼。儘管該示例有效,但我建議您:
-
>使用您自己的混淆電子郵件格式,例如“鮑勃{@}Bobsomain -dot -com”。垃圾郵件發送者可以像您一樣輕鬆地閱讀本文並轉換編碼的電子郵件!
使用不同的鏈接標識符類 - “電子郵件”有點明顯! - >
>使用jQuery之類的JavaScript庫將功能縮短。您還應確保它與圍繞電子郵件地址文本周圍的Whitespace或其他DOM節點進行了應對(未在上面的代碼中處理)。 - >
>用更健壯的事件處理程序替換窗口。 -
祝您好運。
經常詢問有關電子郵件混淆的問題
電子郵件混淆的主要目的是什麼?它涉及以一種使自動化程序(稱為機器人)難以識別或收集的方式來掩飾或編碼電子郵件地址。但是,它仍然可以閱讀,可用於人類訪客。這項技術對於想要公開顯示其電子郵件地址但想避免收到未經請求的電子郵件的網站所有者至關重要。 >
>電子郵件obfustcation如何工作?
通過以一種難以破壞bots的方式來編碼或掩蓋電子郵件地址,來編碼或掩蓋電子郵件地址。這可以通過多種方式完成,例如使用字符實體,JavaScript或CSS技巧。例如,諸如“ info@example.com”之類的電子郵件地址可以被視為“ info(at)示例(dot)com”。儘管存在混淆,但電子郵件地址仍然有效,並且可以正常使用人類訪客。 >電子郵件obfuscation doomprace foolprace嗎? ,而電子郵件obfuscation可以顯著減少您收到的垃圾郵件量,但並不是完全自在。複雜的機器人可能仍然能夠破譯混淆的電子郵件地址。但是,它確實增加了額外的保護層,並使垃圾郵件發送者更難收集您的電子郵件地址。 電子郵件obfuscation會影響用戶體驗嗎? >如果正確完成,電子郵件obfuscation不應對用戶體驗產生負面影響。混淆的電子郵件地址仍應適合人類訪問者可讀並且可用。但是,重要的是要確保使用的混淆方法不會干擾電子郵件地址的功能。 可以將電子郵件obfustcation與任何電子郵件地址一起使用?這是一種獨立於電子郵件提供商或電子郵件地址域的技術。它可以與個人,企業或機構電子郵件地址一起使用。 >
是一次性的一次性過程嗎? >電子郵件obfuscation不一定是一次性的過程。隨著垃圾郵件發送者及其機器人變得越來越複雜,可能有必要更新或更改您的混淆方法以確保繼續保護。>可以與其他垃圾郵件預防方法結合使用電子郵件混淆嗎?這可以包括諸如CAPTCHA,垃圾郵件過濾器和使用聯繫表的技術,而不是公開顯示電子郵件地址。
>電子郵件obfuscation是否會影響電子郵件的可交付性?
不,電子郵件obfustcation不影響電子郵件的交付性。混淆僅影響顯示電子郵件地址的顯示方式,而不是其運作方式。發送到混淆的電子郵件地址的電子郵件將按正常運輸。 >對於所有網站來說,電子郵件混淆是否需要? >
>,儘管並非所有網站都可能需要電子郵件obfuscation,但強烈建議公開顯示電子郵件地址的網站。這包括業務網站,博客,論壇和任何其他網站,需要訪問者可以訪問電子郵件地址。 >
>我如何使我的電子郵件地址混淆? >>
>> 有幾種方法可以混淆您的電子郵件地址,包括使用字符實體,JavaScript,JavaScript或CSS技巧。還有一些在線工具和插件,可以為您混淆您的電子郵件地址。您選擇的方法將取決於您的特定需求和技術功能。
以上是如何用電子郵件混淆停止垃圾郵件收穫的詳細內容。更多資訊請關注PHP中文網其他相關文章!