wake-up-neo.net

Maneira de listar o endereço de e-mail "Fale conosco" no site, mas reduz a probabilidade de spam?

Qual é uma boa maneira de listar um endereço de e-mail "Entre em contato" em um site e reduza a probabilidade de receber spam?

Colocar o endereço de email em uma imagem é a melhor técnica ou existem outras?

70
Chris W. Rea

Passo todos os formulários de contato por meio de uma conta descartável do Gmail, que encaminha o e-mail para o endereço de e-mail real. É grátis, fácil e a detecção de spam do Gmail é de primeira qualidade.

Ele não requer nenhum esforço extra ao criar o site e, se algo acontecer, basta fazer login na conta do Gmail e sinalizá-la como spam.

Em seguida, você pode definir a caixa de entrada do Gmail para arquivar automaticamente tudo o que foi encaminhado ou até mesmo excluí-la se não desejar que essa cópia extra seja mantida lá.

54
Callan
30
Jason

Minha não resposta é não fazer isso. Os sistemas de email modernos, como o GMail e o appliance anti-spam Barracuda, fazem um excelente trabalho de filtragem de spam. Qualquer barreira que você coloca entre você e seus visitantes significa um nível mais baixo de envolvimento e, dependendo do tipo de site, perda potencial de vendas.

Se você estiver preocupado com usuários que não possuem o cliente de email nativo instalado ou que não possuem o manipulador mailto: configurado corretamente, tenha uma página Fale conosco com AMBOS o endereço de email vinculado e um formulário (sem um CAPTCHA) e deixe o usuário escolher.

O spam é irritante, mas é nossa responsabilidade suportar, não nossos usuários.

20
JasonBirch

Use linguagem natural para especificar o endereço de e-mail ...

Ex:

thatguy at gmail dot com

Você ficaria surpreso com o quanto é mais difícil escrever um bot que possa diferenciar a linguagem natural do que escrever um bot que apenas procura o sinal @ e regexes um endereço normal.

Não é 100% infalível, mas não é pior que a ofuscação e não alienará os usuários com deficiência visual e/ou com o JavaScript desativado.

Atualização: Aqui está um exemplo desta técnica em ação .

Atualização 2:

Acontece que alguém realmente fez uma pesquisa sobre isso e publicou on-line. Veja o publicação do Superusuário descrevendo os resultados ou o artigo original

18
Evan Plaice

Pessoalmente, não exibo endereços de email nos sites, mas, em vez disso, tenho um formulário de contato acessível e fácil de usar, além de uma indicação de quem é o email; permitindo que os usuários enviem e-mails para os proprietários e operadores do site, sem expor os endereços de e-mail ou ter que passar por vários ciclos de JavaScript, etc.

Geralmente, é o melhor caminho a percorrer se a sua filtragem de spam não for tão sofisticada.

12
Zhaph - Ben Duguid

use css para esconder algum ruído do texto real (apenas em uma linha, eu o formatei para melhor ilustrar a técnica):

_u<span class="spam">noise</span>ser
@<span class="spam">noise</span>
example<span class="spam">noise</span>
.com
_

e use este pequeno fragmento de css:

_.spam { display: none; }
_

se você precisar de conteúdo válido _mailto:_, precisará criá-lo via jscript no dom, consulte algumas das outras respostas para isso. mas eu não sou um grande amigo disso.

9
akira

O que faço é escrever o endereço de e-mail como palavras, envolto em uma tag de extensão: <span class="email">joe dot blow at gmail dot com</span>. Em seguida, um script no nível da página é executado, capturando essas extensões e substituindo cada uma por um link de email construído. Pode não ser muito obscuro, mas não tive queixas. Além disso, se o JavaScript estiver desativado, o usuário ainda poderá ler o texto da extensão real.

8
Grant Palin

A melhor solução: se um filtro de spam.

Na verdade, eu uso o Gmail para lidar com minha conta de email POP3 da minha empresa, porque é muito mais fácil verificar emails em computadores diferentes. Os filtros de spam do Gmail são os melhores do mundo.

Assim, você pode exibir [email protected] como seu endereço de e-mail e esquecer o spam.

8
DisgruntledGoat

usando codificação html como &#649&#7854&#7575, o navegador exibirá "abc"

7
ilhan

Uma maneira bastante boa, embora não perfeita, é criar o endereço de email via javascript. A maioria das aranhas que procuram e-mails não executa javascript e, portanto, não encontra um endereço de e-mail legível.

Aqui é apenas um exemplo de como isso poderia ser feito.

5
txwikinger

Use uma biblioteca gráfica (como Gd , suportada por PHP ou similar) para criar dinamicamente imagens .png que contenham os endereços de email.

Comparado com a minha outra resposta esta solução é menos irritante para os usuários (mas não é transparente; eles não podem copiá-los e colá-los, mas devem digitá-los novamente do zero), mas também são menos seguros: um computador potencialmente pode ler a imagem não ofuscada.

Mas, no geral, acho que é um bom compromisso; Isso impedirá a grande maioria dos bots de spam.

5
Thomas Bonini

Eu uso um script Python simples para converter o endereço de email em um link mailto em que o endereço de email é codificado em entidade HTML. Isso é completamente transparente para o usuário, mas parece obscurecer o conteúdo o suficiente para derrotar a maioria dos bots de colheita simplórios.

#! /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("[email protected]")

Isso fornece a saída

<!-- [email protected] -->
<a href="&#x6d;&#x61;&#x69;&#x6c;&#x74;&#x6f;&#x3a;&#x74;&#x65;&#x73;&#x74;&#x31;&#x32;&#x33;&#x40;&#x65;&#x78;&#x61;&#x6d;&#x70;&#x6c;&#x65;&#x2e;&#x63;&#x6f;&#x6d;">&#x74;&#x65;&#x73;&#x74;&#x31;&#x32;&#x33;&#x40;&#x65;&#x78;&#x61;&#x6d;&#x70;&#x6c;&#x65;&#x2e;&#x63;&#x6f;&#x6d;</a>

Quando o resultado é colado em uma página da web, o navegador exibe o texto "[email protected]" como uma hiperlinha para "mailto: [email protected]"; portanto, é tão conveniente para o usuário final quanto incluir o endereço no Claro. Mas parece derrotar muitos robôs de colheita.

Obviamente, excluo o comentário com a versão simples ASCII do endereço depois de colar o link do email oculto no local apropriado na fonte HTML da página da web.

5
Stephen C. Steel

Peça ao usuário para resolver um CAPTCHA antes de mostrar o endereço de email (ou se você tiver um formulário de contato, antes de permitir que o usuário o envie).

É o mais irritante para os usuários, mas definitivamente o mais eficaz.

4
Thomas Bonini

Sou fã de ofuscação, onde o endereço de email é essencialmente renderizado com Javascript.

Por exemplo, [email protected] pode ser renderizado como

<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>

Para o usuário, é um texto normal e pode ser copiado e colado. Bots, por outro lado, terão mais dificuldade com isso.

Aqui está o ofuscador que eu usei.

3
Paperjam

Mão única:

_  <script language="javascript"> 
  <!--
  var name = "user"
  var Host1 = "gm"
  var Host2 = "ail.com"
  var addr =
  document.write("<a href=mai" + "lto:" + 
    name + "&#64;" + Host1 + Host2 +
    ">" + name + "&#64;" + Host1 + Host2 + "</a>")
  //-->
 </script> 
_

Você pode escrever "Decifrar meu e-mail: usuário no com dot gmail" em <noscript> tags para aqueles com o javascript desativado. Dessa forma, você obtém a funcionalidade de hiperlink. Você tem uma boa chance de manter os spamers longe do seu endereço e as pessoas com o javascript desativado ou os navegadores apenas com texto ainda podem obter o seu endereço de email.

2
Adam

Todas as técnicas de ofuscação do mundo não podem ajudar a longo prazo, se houver muitas pessoas entrando em contato com você. Basta que alguém envie uma mensagem para você e depois seja infectado por algum malware que varre sua caixa de entrada/correio enviado/catálogo de endereços/o que for, para obter endereços válidos, e seu endereço está sendo passado de uma lista para outra. [Até tenho contatos estúpidos o suficiente para colocar lá o endereço de e-mail e a senha nos formulários on-line pelas razões mais idiotas, você provavelmente também o mais recente foi um site que se ofereceu para calcular o "gráfico e previsões de astrologia por e-mail de alguém" que imediatamente enviou spam a todos os contatos do tolo com um convite para o mesmo site e a <deidade> só sabe em que outras listas estamos agora].

O endereço nos meus sites públicos não é apenas um endereço descartável - está em um subdomínio descartável. Se eu começar a receber spam nesse subdomínio, crio um novo, atualize os sites onde meus detalhes de contato estão listados e, pouco tempo depois, removo completamente o subdomínio dos registros DNS. Se você fizer isso, ou qualquer outra técnica de endereço descartável, certifique-se de deixar claro (em qualquer página que lista o endereço e no rodapé de qualquer email enviado usando esse endereço) que o endereço será alterado no futuro e se as pessoas puderem para passar, eles devem verificar novamente para garantir que tenham o endereço correto.

Isso tem a vantagem de ser apenas um endereço simples para as pessoas clicarem (se seu navegador + mala direta estiverem vinculadas dessa maneira) ou copiar + colar sem precisar usar o cérebro para editar o endereço posteriormente (sempre fico surpreso com o número de pessoas inteligentes e observadoras não conseguem acertar esse tipo de coisa). Isso também significa que meu servidor de email não passa seus dias devolvendo mensagens enviadas para endereços "aleatórios" (aaron @, adam @, amy01 @, ...) nos subdomínios expirados. Também não confunde os leitores de tela usados ​​pelos cegos ou mal situados.

Outra opção que eu ainda não tentei é usar uma solicitação AJAX para ler o endereço de email e outros detalhes. Isso pode ser um pouco mais eficaz que a ofuscação baseada em document.write, embora adicione um pouco de carga extra no servidor da web.

Eu costumava usar os formulários "entre em contato comigo", mas descobri que eles são spam tanto quanto, às vezes mais do que endereços de email em texto sem formatação - às vezes por scripts que tentam usar o formulário para criar uma conta em algum lugar, em vez de use-o como um formulário de contato.

2
David Spillett

De jeito nenhum, José! - Sim, José!

Não há absolutamente nenhuma maneira de 'parar' a coleta de endereços de e-mail a href="mailto:". Acredita-se há muito tempo que o uso de JavaScript é uma boa maneira de impedir a maioria dos robôs de colheita, mas hoje em dia os robôs são muito bons em derrotar esse método. Eles também podem derrotar imagens que contêm endereços de email, da mesma maneira que podem derrotar o captcha usando o software decaptcha.

A melhor maneira!

A melhor abordagem seria usar um serviço de correio respeitável que ofereça um bom bloqueio de spam. Google G Suite e Microsoft Office 365 usam um algoritmo incomparável a qualquer software no mercado, principalmente porque recebem milhões de e-mails por dia e podem 'aprender' e spammers na lista negra muito antes mesmo de tentarem enviar um e-mail para você.

De fato, um ano atrás o Google disse que sua tecnologia de aprendizado de máquina agora bloqueia 99,9% das mensagens de spam e phishing do Gmail , o Microsoft Exchange local e os servidores de correio executando o plesk/cpanel não conseguem competir com essa proteção.

Resumo

Bloqueie o spam usando um serviço de e-mail respeitável capaz de aprendizado de máquina de IA. Você também pode dar um passo adiante, impedindo que os spammers visitem seu site usando o Cloudflare, que detectará uma grande maioria de bots agressivos antes que eles cheguem ao seu site.

1
Simon Hayter

Se você possui um filtro de bot (usando 1x1px, sub-rede, bots conhecidos, detecção de jscript, referenciador http e agente do navegador), você simplesmente não pode exibir as informações se for um bot.

Solução em PHP:

<?
if (!isbot()) {
  echo 'mailto:'.$email_address_for_real_people;
  }
  else {
  echo 'mailto:[email protected]'.$bots_domain_address;
  }
?>
1
Talvi Watia

A coisa mais fácil que encontrei é usar um formulário de contato em que haja um endereço padrão, mas também a capacidade do usuário selecionar para quem a comunicação deve ir (marketing, vendas, suporte técnico etc.). Em seguida, com base no valor da lista suspensa, os dados do formulário postado são enviados pelo servidor para o endereço de email apropriado.

Execute essa lista de contatos de uma tabela do banco de dados para poder atualizar/adicionar entradas facilmente ao menu suspenso. Dessa forma, você nunca expõe nenhum tipo de endereço ao amplo mundo dos bots de spam e ainda oferece aos usuários uma ótima maneira de enviar feedback.

1
Milner

Use Zoho Creator para configurar um formulário de contato. O feedback que você recebe será armazenado em um banco de dados que você pode acessar on-line e também será enviado por e-mail.

0
mvark

Eu uso um função PHP para gerar algum javascript para gerar o script em tempo de execução. Observe que você não precisa PHP para gerar o JS em tempo de execução, é possível gerar o JS uma vez localmente e incluir o JS estático em sua página.

Você também pode usar a função vinculada com esse trecho abaixo para ofuscar automaticamente endereços de e-mail em um determinado HTML (onde $ processingContent é o 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);
 }
}
0
iloveitaly

Uma coisa que faço é usar a API de http://www.stopforumspam.com para verificar se há spammers. Sinta-se à vontade para entrar em contato comigo para obter detalhes e terei prazer em ajudá-lo!

Bud Manz

Manz Web Designs, LLC Empresas

0
Bud

Eu uso [email protected] há anos. Os usuários normalmente sabem o suficiente para excluir o 'sem spam'.

Caso contrário, basta usar um formulário de contato com um 'captcha' e enviar o email diretamente do site.

0
Gary.Ray

Aqui está outro ofuscador de e-mail: Enkoder , de Dan Benjamin. Ele vem como um aplicativo on-line e um aplicativo autônomo para Mac.

0
Alex

Se você não se importa em usar javascript, pode usar algo como ROT13 para ofuscar o endereço de email. Por exemplo, veja isto:
http://scott.yang.id.au/2003/06/obfuscate-email-address-with-javascript-rot13/

Pessoalmente, prefiro usar um formulário de contato e não me preocupar com os spambots, mas é claro que tudo depende de suas necessidades.

0
Mee

Se você estiver usando um formulário de contato, poderá usar a técnica divertida de usar nomes aleatórios para suas entradas.

Por exemplo, eu faço um formulário de contato, em vez de usar o email como entrada, usaria liame, o mesmo com o nome (eman) e o comentário (tnemmoc). Os bots não sabem realmente o que essas entradas fazem, então apenas as desconsideram.

0
dkuntz2

Configurei um formulário/planilha do Google Docs. Posso verificar as entradas do formulário uma vez por dia e minha caixa de entrada não é inundada.

0
Sri