Bir web sitesinde "Bize Ulaşın" e-posta adresini listelemenin ve istenmeyen posta alma olasılığını düşürmenin iyi bir yolu nedir?
Bir görüntüdeki e-posta adresini koymak en iyi teknik midir, yoksa başkaları var mı?
Bir web sitesinde "Bize Ulaşın" e-posta adresini listelemenin ve istenmeyen posta alma olasılığını düşürmenin iyi bir yolu nedir?
Bir görüntüdeki e-posta adresini koymak en iyi teknik midir, yoksa başkaları var mı?
Yanıtlar:
Tüm iletişim formlarını, postaları gerçek e-posta adreslerine ileten bir Gmail hesabı aracılığıyla iletiyorum. Ücretsiz, kolay ve Gmail’in spam tespitinde en üst seviyedir.
Web sitesini yaparken fazladan çaba sarf etmenizi gerektirmez ve sizi bir şey bulursa Gmail hesabınıza giriş yapın ve spam olarak işaretleyin.
Daha sonra Gmail gelen kutusunu, yönlendirilen herhangi bir şeyi otomatik olarak arşivleyecek şekilde ayarlayabilir veya bu ekstra kopyanın orada saklanmasını istemiyorsanız silebilirsiniz.
Bir e-posta obfikatörü kullanın
Benim cevabım bunu yapmamak. GMail ve Barracuda anti-spam cihazı gibi modern e-posta sistemleri spam’i filtreleme konusunda mükemmel bir iş çıkarmaktadır. Siz ve ziyaretçileriniz arasına koyduğunuz herhangi bir engel, daha düşük katılım düzeyi ve site türüne bağlı olarak, potansiyel satış kaybı anlamına gelir.
Yerel posta istemcisi yüklü olmayan veya mailto: işleyicisinin doğru ayarlanmadığı kullanıcılar için endişeleniyorsanız, bağlantılı e-posta adresini ve formunu (CAPTCHA'sız) ve kullanıcının seçim yapmasına izin ver.
Spam can sıkıcıdır, ancak kullanıcılarımız için değil, taşıma yükümlülüğümüzdür.
E-posta adresini hecelemek için doğal dili kullanın ...
Ör:
thatguy at gmail dot com
Doğal dili farklılaştırabilen bir bot yazmanın, sadece @ işaretini arayan ve normal bir adresi regexes eden bir bot yazmanın ne kadar zor olduğunu görünce şaşıracaksınız.
% 100 kusursuz değildir ancak şaşırtmaktan daha kötü değildir ve görme engelli kullanıcılarınızı ve / veya JavaScript'i devre dışı bırakan kullanıcıları yabancılaştırmaz.
Güncelleme: İşte bu teknikte eylem örneği .
Güncelleme 2:
Birisinin bu konuda gerçekten araştırma yaptığı ve çevrimiçi olarak yayınladığı ortaya çıktı. Bkz Süper Kullanıcı sonrası sonuçlarını açıklayan veya orijinal makaleye
thatguy funny-symbol gmail.com
Şahsen, sitelerde e-posta adreslerini görüntülemiyorum, bunun yerine kullanımı kolay, erişilebilir bir iletişim formunu ve e-postanın kimden geldiğinin bir göstergesi; kullanıcıların e-posta adreslerini ifşa etmeden veya çeşitli JavaScript kasnaklarına atlamak zorunda kalmadan site sahiplerine ve operatörlerinin e-postalarını göndermelerine izin vermek
Spam filtrelemeniz bu kadar karmaşık değilse, bu genellikle gitmek için en iyi yoldur.
css'i gerçek metinden biraz gürültüyü gizlemek için kullanın (sadece bir satırda, tekniği daha iyi göstermek için biçimlendirdim):
u<span class="spam">noise</span>ser
@<span class="spam">noise</span>
example<span class="spam">noise</span>
.com
ve sonra bu küçük css-snippet'ini kullanın:
.spam { display: none; }
Eğer geçerli bir mailto:
içeriğe ihtiyacınız varsa , o zaman dom içindeki jscript ile oluşturmalısınız, bunun için bazı cevaplara bakınız. ama ben bunun büyük bir arkadaşı değilim.
Yaptığım şey e-posta adresini span etiketine sarılmış kelimeler olarak yazmak <span class="email">joe dot blow at gmail dot com</span>
. Ardından, sayfa düzeyinde bir komut dosyası çalışır, bu tür alanları kapar ve her birini oluşturulmuş bir e-posta bağlantısıyla değiştirir. Çok belirsiz olmayabilir, ama hiçbir şikayetim olmadı. Ayrıca, JavaScript devre dışı bırakılmışsa, kullanıcı hala gerçek yayılma metnini okuyabilir.
En iyi çözüm: bir spam filtresi kullanın .
Aslında işim için POP3 e-posta hesabımı işlemek için Gmail kullanıyorum, çünkü farklı bilgisayarlarda e-postaları kontrol etmek çok daha kolay. Gmail’in spam filtreleri dünyadaki en iyisidir.
Böylece webmaster@example.com adresini e-posta adresiniz olarak görüntüleyebilir ve spam'ı unutabilirsiniz.
gibi html kodlamasını kullanarak ʉẮᶗ
, tarayıcı "abc" gibi hale getirecek
E-posta adreslerini içeren .png görüntülerini dinamik olarak oluşturmak için bir grafik kitaplığı ( PHP tarafından desteklenen GD gibi ) kullanın.
Diğer cevabımla karşılaştırıldığında bu çözüm kullanıcılar için daha az can sıkıcıdır (ancak şeffaf değildir; kopyalayıp yapıştıramaz ancak sıfırdan yeniden yazmalıdır), ancak daha az güvenlidir: bir bilgisayar potansiyel olarak bulanıklaşmamış görüntüyü okuyabilir.
Ancak genel olarak bunun iyi bir uzlaşma olduğunu düşünüyorum; Spam botlarının büyük çoğunluğunu durduracaktır.
Oldukça iyi, mükemmel olmasa da e-posta adresini javascript ile oluşturmak. E-posta arayan çoğu örümcek javascript yürütmez ve bu nedenle okunabilir bir e-posta adresi bulamaz.
İşte nasıl yapılabileceği sadece bir örnek.
E-posta adresini HTML varlık kodlu olduğu bir mailto bağlantısına dönüştürmek için basit bir Python betiği kullanıyorum. Bu kullanıcı için tamamen şeffaftır, ancak içeriği en basit biçimli hasat botlarını yenecek kadar gizlemiş görünmektedir.
#! /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")
Bu çıktı verir
<!-- test123@example.com -->
<a href="mailto:test123@example.com">test123@example.com</a>
Sonuç bir web sayfasına yapıştırıldığında, tarayıcı "test123@example.com" metnini "mailto: test123@example.com" için bir köprü olarak görüntüler; net olarak. Ancak birçok hasat botunu yeniyor gibi görünüyor.
Açıkçası, gizlenmiş e-posta bağlantısını web sayfasının HTML kaynağındaki uygun noktaya yapıştırdığımda, adresin basit ASCII sürümüyle yorumu sildim.
Kullanıcıdan e-posta adresini göstermeden önce bir CAPTCHA çözmesini isteyin (ya da bir kullanıcının göndermesine izin vermeden önce bir iletişim formunuz varsa).
Bu kullanıcılar için en sinir bozucu ama kesinlikle en etkili.
Ben, e-posta adresinin Javascript ile işlendiği bir şaşkınlık hayranıyım.
Örneğin, my@email.com
olarak oluşturulabilir
<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>
Kullanıcı söz konusu olduğunda, normal metindir ve kopyalanıp yapıştırılabilir. Öte yandan botlar daha zor zamanlar geçirecek.
İşte kullandığım obfikatör .
<a href="#" onclick="document.location.href='mailto:...'; return false">
Tek yön:
<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>
Javascript'i devre dışı bırakanlar için etiketlerde "E-posta adresimi uncramble: com dot gmail'deki kullanıcı" yazabilirsiniz . Bu şekilde köprü işlevselliğini elde edersiniz. Spam gönderenleri adresinizden uzak tutma şansınız vardır ve javascript kapalı olan kişiler veya sadece tarayıcı olan kişiler e-posta adresinizi alabilir.
Sizinle iletişim kuran birçok insanı yakalarsanız, dünyadaki tüm şaşırtma teknikleri uzun vadede yardımcı olamaz. Tek yapmanız gereken birisinin size bir mesaj bırakması ve daha sonra gelen kutularını / gönderilen postalarını / adres defterlerini / geçerli adresleri ne olursa olsun tararken bazı kötü amaçlı yazılımlardan etkilenmesi ve listeden listeye iletilmesinden [ adresiniz bile var. En aptalca nedenlerden ötürü orada e-posta adresini ve şifreyi çevrimiçi formlara koyacak kadar aptal olan, muhtemelen en sonuncusu da, birisinin "tüm e-posta astrolojisi çizelgesi ve tahminlerini" hesaplayan bir siteydi. aptal aynı siteye davet ile temas ve <deity> sadece sonuç olarak şu anda hangi listelerde olduğumuzu biliyor] .
Herkese açık web sitelerimdeki adres sadece bir adres değil, aynı zamanda bir şirket. Bu alt etki alanında spam almaya başlarsam, yeni bir tane oluştururum, iletişim bilgilerimin listelendiği siteleri günceller ve kısa bir süre sonra alt etki alanını DNS kayıtlarından tamamen kaldırırım. Bunu yaparsanız veya herhangi bir başka adresleme tekniği kullanıyorsanız (adresi listeleyen herhangi bir sayfada ve bu adresi kullanarak gönderdiğiniz herhangi bir postanın alt kısmında), adresin gelecekte değişeceğinden ve kişilerin değişebileceğinden emin olun. doğru adresi aldıklarından emin olmak için tekrar kontrol etmeleri gerekir.
Bu, insanların tıklamaları için basit bir adres olma avantajına sahiptir (tarayıcıları + postaları bu şekilde bağlıysa) veya adreslerini daha sonra adresi düzenlemek için beyinlerini kullanmaya gerek kalmadan kopyala + yapıştır Zeki ve gözlemci insanlar böyle bir şeyi doğru yapamazlar). Bu, posta sunucumun günlerini, süresi dolmuş alt alan adlarında "rastgele" adreslere (aaron @, adam @, amy01 @, ...) gönderilen mesajları zıplayarak geçirmediği anlamına gelir. Aynı zamanda, kör tarafından kullanılan veya zayıf oturan ekran okuyucuları birbirine karıştırmaz.
Henüz denemediğim bir diğer seçenek, e-posta adresini ve diğer ayrıntıları okumak için bir AJAX isteği kullanmak. Bu document.write
, web sunucusuna biraz fazladan yük getirecek olsa da, esas olarak şaşırtmacadan biraz daha etkili olabilir .
Bunun yerine "bana / bize ulaşın" formlarını kullanırdım, ancak bazen düz metin e-posta adresleri kadar, bazen de bir yerde bir hesap oluşturmak için bu formu kullanmaya çalışan komut dosyalarıyla spam gönderildiğini gördüm. iletişim formu olarak kullanın.
Bir bot filtreniz varsa (1x1px, alt ağ, bilinen botlar, jscript tespiti, http yönlendirici ve tarayıcı aracısı kullanarak) bilgileri bir bot ise görüntüleyemezsiniz.
PHP'de Çözüm:
<?
if (!isbot()) {
echo 'mailto:'.$email_address_for_real_people;
}
else {
echo 'mailto:yourself_bot@'.$bots_domain_address;
}
?>
isbot()
olduğunuz bot filtre rutininin ne olduğuna işaret eden, kullanıcı tarafından oluşturulan bir fonksiyondur.
Bulduğum en kolay şey, varsayılan adresin bulunduğu bir iletişim formu kullanmak, aynı zamanda kullanıcının iletişimin kime gideceğini seçebilme yeteneği (pazarlama, satış, teknik destek vb.). Ardından, açılan değere bağlı olarak yayınlanan form verileri sunucu tarafından uygun e-posta adresine gönderilir.
Bu kişi listesini bir veritabanı tablosundan çalıştırın, böylece açılır listeye girişleri kolayca güncelleyebilir / ekleyebilirsiniz. Bu şekilde, hiçbir zaman spam botlarının dünyasına herhangi bir adres göstermezsiniz ve yine de kullanıcılarınıza geri bildirimde bulunmak için harika bir yol sunar.
Olmaz, Jose! - Evet yol, Jose!
a href="mailto:"
E-posta adreslerinin toplanmasını kesinlikle durdurmanın bir yolu yoktur . JavaScript kullanmanın çoğu hasat botunu önlemenin iyi bir yolu olduğuna inanılıyor, ancak günümüzde botlar bu yöntemi yenmek konusunda oldukça iyi. Ayrıca, decaptcha yazılımını kullanarak captcha'yı yenebildikleri gibi e-posta adreslerini içeren görüntüleri de yenebilirler.
Daha iyi yol!
Daha iyi bir yaklaşım, iyi spam engelleme sağlayan saygın bir posta servisi kullanmak olacaktır. Google G Suite ve Microsoft Office 365 , piyasadaki herhangi bir yazılımla eşleşmeyen bir algoritma kullanıyor, çünkü çoğunlukla günde milyonlarca e-posta alıyorlar ve spam göndericilerini size e-postayla göndermeye başlamadan çok önce “öğrenebiliyorlar” ve kara listeye alabiliyorlar.
Aslında Google, bir yıl önce , makine öğrenim teknolojisinin artık Gmail spam ve kimlik avı mesajlarının% 99,9'unu engellediğini , yerel Microsoft Exchange ve plesk / cpanel'in arkasında çalışan posta sunucularının bu koruma ile rekabet edemediğini söyledi.
özet
AI makinesi öğrenmeye uygun saygın bir posta servisi kullanarak spam'i engelleyin. Ayrıca, spam gönderenlerin sitenizi ziyaret etmeden önce agresif botların büyük çoğunluğunu tespit edecek Cloudflare kullanarak sitenizi ziyaret etmesini önleyerek bir adım daha ilerleyebilirsiniz.
Yıllar boyunca fred@no-spam.domain.com adresini kullandım. Kullanıcılar genellikle 'istenmeyen posta olmayanları' silmek için yeterince bilgi sahibi olur.
Aksi takdirde, sadece 'captcha' ile bir iletişim formu kullanır ve postaları doğrudan web sitesinden gönderirim.
Yaptığım bir şey, spam gönderenleri kontrol etmek için http://www.stopforumspam.com adresinden API kullanmak . Detaylar için benimle temas kurmaktan çekinmeyin, size yardımcı olmaktan memnuniyet duyarım!
Bud Manz
Manz Web Tasarımları, LLC
Javascript kullanmak sakıncası yoksa, e-posta adresini gizlemek için ROT13 gibi bir şey kullanabilirsiniz. Örneğin, buna bakınız:
http://scott.yang.id.au/2003/06/obfuscate-email-address-with-javascript-rot13/
Şahsen ben bir iletişim formu kullanmayı tercih ediyorum ve spambotları dert etmeyin, ama elbette hepsi sizin gereksinimlerinize bağlı.
Çalışma zamanında betiği basmak için bazı javascript oluşturmak için bir PHP işlevi kullanıyorum . PHP'yi çalışma zamanında oluşturmak için PHP'ye ihtiyacınız olmadığını , JS'yi yerel olarak bir kez üretebileceğinizi ve statik statik JS'yi sayfanıza dahil edebileceğinizi unutmayın.
Verilen bir HTML'de e-posta adreslerini otomatik olarak gizlemek için, aşağıdaki kod parçasını kullanarak bağlantılı işlevi kullanabilirsiniz (burada $ processingContent HTML'dir):
$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);
}
}
Bir iletişim formu kullanıyorsanız, girişleriniz için rasgele adlar kullanma eğlenceli tekniğini yapabilirsiniz.
Örneğin, bir e-postayı giriş olarak kullanmak yerine, bir ad (eman) ve comment (tnemmoc) ile aynı şekilde liame kullanırdım. Robotlar aslında bu girdilerin ne yaptığını bilmiyorlar, bu yüzden onları dikkate almıyorlar.
Bir iletişim formu oluşturmak için Zoho Oluşturan'ı kullanın . Aldığınız geri bildirimler çevrimiçi erişebileceğiniz bir veritabanında saklanır ve ayrıca size e-postayla gönderilir.