2011-01-25 11 views
24

Qual è il modo migliore per presentare un indirizzo e-mail sul mio sito senza essere attaccati dagli spammer?Qual è il modo migliore per presentare un indirizzo e-mail sul mio sito web senza essere attaccato dagli spammer?

L'approccio foo at fooland dot com non è esattamente quello che sto cercando. Ho bisogno di presentarlo in un modo comprensibile per le persone normali.

EDIT

la visualizzazione di e-mail sono dinamici

+0

@Ciwee: quale tecnologia server stai utilizzando? –

+0

@richard ev: ASP.NET e jQuery –

+0

@Ciwee: MVC o WebForms? –

risposta

7

Come un sull'utilizzo di una semplice immagine che caratterizza il tuo indirizzo e-mail?

Una tecnica per generare dinamicamente l'immagine potrebbe essere quella di aggiungere un controller ASP.NET MVC al progetto WebForms con un metodo di azione che restituisce un FileResult contenente un'immagine generata dinamicamente contenente l'indirizzo di posta elettronica.

public class DynamicImageController : System.Web.Mvc.Controller 
{ 
    public FileResult Email(int id) 
    { 
     // TODO: Code that uses the ID value to retrieve the 
     // email address for this customer (for example) 
    } 
} 

Sul modulo Web è possibile utilizzare un controllo server di immagini, e impostare il ImageUrl di conseguenza (qualcosa come "/DynamicImage/Email/" + customerId) dal codice dietro.

Questa pagina ha un esempio che illustra come utilizzare un FileResult per il rendering di un'immagine (un grafico in questo scenario)

http://www.codeproject.com/KB/aspnet/MvcChartControlFileResult.aspx

+0

Questo è una soluzione, ma dovrei generare l'immagine dinamicamente perché le e-mail presentate sono dinamiche. Se dovessi generare, preferirei un approccio javascript. –

+0

+1 Semplice ed efficace. –

+5

Ha lo svantaggio di essere una seccatura per chi ha bisogno di usare l'indirizzo, però. –

2

Il lato negativo con l'approccio basato sull'immagine è che non può essere copiato dagli utenti.

Penso qualche tipo di JavaScript che rende l'e-mail sarebbe bello. Se è abbastanza complicato, i robot potrebbero non essere in grado (o disposti) a trovarlo. Ad esempio, dì che inizi con un'immagine (funziona per tutti). Quindi, se l'utente fa clic su di esso, si trasforma in un testo copia-incollabile da alcuni JavaScript-magia.

Un'altra idea sarebbe quella di sostituire l'immagine con un testo 2 secondi dopo che la pagina è stata caricata. Se i robot hanno fretta (di solito?) Vedranno solo l'immagine. Inoltre, se l'utente è veloce e ha provato a selezionare l'immagine prima che sia sostituita, il JavaScript può sparare immediatamente e sostituirlo con il testo corretto. Usa un evento mouseover o click o qualcosa del genere.

+1

Javascript è la soluzione a cui tendo.Sono disposto a rendere l'e-mail come foo-at-fooland-dot-com e posizionare un blocco javascript a destra sotto il markup che lo converte in [email protected] È copia-e-passibile e sembra buono. –

+0

@Ciwee: sebbene la mia soluzione sia diversa dalla tua, penso che sia una buona idea mostrare la cosa name-at-domain-dot-com e cambiarla dinamicamente in un link mailto (cliccabile) normale usando JavaScript. Grazie per l'ispirazione, scriverò sicuramente una sceneggiatura del genere per i miei siti :) – mingos

2

Come sulla codifica JavaScript? Una funzione PHP come questo potrebbe essere utilizzato:

function encodeEmail ($email) { 
    $ret = ''; 
    $a = '<a href="mailto:' . $email . '">' . $email . '</a>'; 
    $i = 0; 
    $c = substr($a, $i, 1); 
    while ($c != FALSE) { 
    $ret .= '%'.dechex(ord($c)); 
    $c = substr ($a, ++$i, 1); 
    } 
    return "<script type='text/javascript'>document.write(unescape('$ret'));</script>"; 
} 

(il codice potrebbe aver bisogno di qualche correzione, come ho scritto senza controllo degli errori).

0

Direi un approccio di immagine se non ti dispiace che gli utenti non siano in grado di copiarlo.

È possibile utilizzare JavaScript per creare l'indirizzo da un algoritmo casuale che ti piace. Puoi anche inserirlo in un alert() che è ancora in grado di copiare ma il tuo indirizzo email non tocca mai il DOM.

0

Un approccio migliore è quello di andare come gruppi di google, non mostrano l'effettivo ID e-mail, solo l'inizio, ma poi, se sei un umano, puoi usare l'approccio captcha per verificare il visitatore come umano o un bot. Inoltre, è possibile incorporare un file audio nel sistema o un display basato su flash, che mostra il proprio ID e-mail. È possibile creare un flash ActionScript, sembra buono, attraente e offre anche lo scopo. Un suono o un flash, è ciò che penso sia bello. Puoi persino creare un'immagine dinamica che continua a cambiare ogni volta che un utente ricarica la pagina. Buona fortuna!

2
<a href="mailto:[email protected]">[email protected]</a> 

Seriamente, a mio parere, nessuna di queste soluzioni vale la pena supplementare per i vostri utenti.

I filtri antispam sono davvero buoni in questi giorni (non ricevo quasi spam nella mia gmail e uso sempre il mio indirizzo email direttamente) e se vuoi raggiungere un pubblico, la tua priorità dovrebbe essere il loro comfort, non il tuo.

Forse questa è una questione soggettiva però :)

+0

Sono d'accordo. Il mio indirizzo email è stato pubblicato sulla mia pagina web, nei dati di contatto dei miei domini e in molti siti per almeno 5 anni e non c'è un solo giorno in cui devo segnare più di 2 o 3 messaggi di spam. Il mio reddito dipende da quei contatti, quindi non rischierei. – AJJ