Подтвердить что ты не робот

Как показать адреса электронной почты на веб-сайте, чтобы избежать спама?

Я показываю электронную почту на своем веб-сайте следующим образом

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

Но я читал следующее, анализируя свой сайт с помощью woorank.com, что мне делать, чтобы этого избежать?

Вредоносные боты очищают веб-страницы в поисках адресов электронной почты, а адреса электронной почты с обычным текстовым текстом, скорее всего, будут рассылаться спамом.

4b9b3361

Ответ 1

Существует несколько различных вариантов скрытия электронных писем на веб-сайтах, обычно использующих либо версию сущности HTML-адреса электронной почты (как предполагал Азиз-Салех), но с точки зрения веб-дизайна, просто помещая адрес электронной почты на веб-сайт это не самая удобная для пользователя вещь.

Например, mailto: link автоматически запускает браузер, чтобы открыть приложение электронной почты пользователя по выбору - но подумайте об этом. Не у всех есть специальное приложение электронной почты. Например, я не использую Outlook (я пользователь Windows), и если у меня не установлена Windows Live Mail, мой компьютер не сможет открыть эту ссылку. Я думаю, что Chrome может открыть ссылки на GMail, если вы вошли в систему, но мне нужно будет это проверить.

В конечном счете, используя mailto: вы потенциально отчуждаете часть своей пользовательской базы, которая не сможет использовать эту ссылку в первую очередь.

Я бы предложил использовать формы электронной почты, и есть много простых в использовании учебников, доступных как для PHP, так и для вашего языка JSP, например, эта ссылка здесь: Отправка электронной почты в JSP и даже на fooobar.com/questions/210638/...

Используя свой сервер для отправки электронной почты, вы получаете более жесткий контроль над тем, как генерируется электронное письмо, какие данные пользователь может ввести, и вы даже можете отправить им обратный адрес электронной почты (сгенерированный сервером), чтобы подтвердить, что у вас есть получили свое сообщение. Это проверенный и проверенный реальный метод, позволяющий клиентам и посетителям связываться с вами, сохраняя при этом защиту и контроль над всем процессом.

TL; DR: Raw mailto: ссылки могут отчуждать людей без специальных почтовых программ, тогда как если вы используете JSP-формы, вы можете контролировать, как они свяжутся с вами, с какой информацией (вы можете использовать поля и required атрибут HTML5 для мандата определенных полей ввода) и вы даже можете ответить do-not-reply электронной почте, чтобы они знали, что их сообщение было услышано (просто не забудьте спросить их адрес электронной почты)

Ответ 2

В прошлом я видел это с помощью javascript. В основном вы назначаете адрес электронной почты для javascript-переменных и изменяете содержимое элемента, используя эти. Вы также можете предоставить резерв для пользователей с отключенным javascript, который указывает их в направлении формы, если вам нужно. Вот пример

var user = 'foo',
    domain = 'bar.com',
    element = document.getElementById('email');

    element.innerHTML = user + '@' + domain;
    //OR
    //'<a href="mailto:' + user + '@' + domain + '">Email</a>'  

Таким образом, боты никогда не видят адрес электронной почты, так как они не загружают javascript.

Ответ 3

Хорошо, вы можете различать разные способы каждый день. Здесь используется jQuery.

<a class="mail" href="mailto:[email protected]">e-mail</a>

Затем обработайте щелчок с помощью jQuery.

$('a.mail').on('click', function(){
    var href = $(this).attr('href');
    $(this).attr('href', href.replace('badmail.', ''));
});

Причина, по которой мне это нравится, заключается в том, что я могу позволить спамерам спамить фиктивный почтовый домен, думая, что у них есть еще одно электронное письмо, собранное. Если бы я поддерживал свой собственный спам-фильтр, я мог бы собирать образцы в свое плохое ведро.

Кроме того, этот подход позволяет сделать страницу довольно чистой с динамическими данными и просто иметь фрагмент javascript только один раз на всем сайте для обработки реальных кликов пользователей.

Работает также на мобильных телефонах.

Ответ 4

Решение 1:

Вы можете использовать многие общедоступные кодеры адресов электронной почты, такие как (первый результат в google):

http://www.wbwip.com/wbw/emailencoder.html

Это кодирует электронные письма в их значение символьной сущности, для этого потребуется больше скребок логической формы.

Итак, электронное письмо вроде: [email protected] становится &#116;&#101;&#115;&#116;&#064;&#103;&#109;&#097;&#105;&#108;&#046;&#099;&#111;&#109;, которое также может использоваться в mailto.

Решение 2:

Используйте онлайн-адрес электронной почты для конвертера изображений (снова первый результат в google):

http://www.email2image.com/Convert-Email-to-Image.aspx

Сделать это как изображение. Другие службы позволяют вам делать это автоматически через API, например:

https://www.mashape.com/seikan/img4me-text-to-image-service#!endpoint-Main

Ответ 5

Лично я придумал это, довольно просто и любопытно, я бросаю этот код, где я хочу, чтобы мой адрес электронной почты появлялся:

<script>(function whatever(){var s='@',n='nabil',k='kadimi.com',e=n+s+k,l='<a href=mailto:{{[email protected]}}>{{[email protected]}}</a>'.replace(/{{.+?(}})/g,e);document.write(l)})()</script>

Расширенные

<script>
    (function whatever() {
        var s = '@'
            , n = 'nabil'
            , k = 'kadimi.com'
            , e = n + s + k
            , l = '<a href=mailto:{{[email protected]}}>{{[email protected]}}</a>'.replace(/{{.+?(}})/g, e)
        ;
        document.write(l);
    })();
</script>

Demo

<script>(function whatever(){var s='@',n='nabil',k='kadimi.com',e=n+s+k,l='<a href=mailto:{{[email protected]}}>{{[email protected]}}</a>'.replace(/{{.+?(}})/g,e);document.write(l)})()</script>

Ответ 6

Я использую кодеры электронной почты, такие как http://www.wbwip.com/wbw/emailencoder.html. Просто поместите свой адрес в источник и между тегами "a". Что-то вроде этого

<a href="mailto:&#105;&#110;&#102;&#111;&#064;&#101;&#120;&#097;&#109;&#112;&#108;&#101;&#046;&#099;&#111;&#109;">&#105;&#110;&#102;&#111;&#064;&#101;&#120;&#097;&#109;&#112;&#108;&#101;&#046;&#099;&#111;&#109;</a>

Это кодирование [email protected]

Ответ 7

Google фактически предоставляет услугу для этого. Бесплатно и хорошо работает: Mail ReCaptcha

Ответ 8

Да, это означает использование php-формы для того, чтобы посетители могли связаться с вами. Это намного безопаснее и останавливает ботов, отправляющих вам электронные письма, как тысячи раз. Осмотрите Google для учебника контактной формы, будет много!

В учебнике рассказывается, как использовать php, и когда пользователь заполняет форму, он будет отправлен вам по электронной почте с подробностями, которые они заполнили в форме. Однако большинство форм используется как запись "Captcha", и она останавливает ботов, почти как "Are You Human"? тест.

Надеюсь, что это поможет.

Ответ 9

Вы можете использовать изображение. И вы все равно можете добавить ссылку mailto.

Ответ 10

Поместите свой адрес электронной почты на прозрачное изображение в формате png или gif и покажите это изображение на своих веб-страницах. Только человек-читатель знал, что на изображении отображается адрес электронной почты. Это не позволит ботам найти ваш адрес электронной почты на вашем веб-сайте.

Ответ 11

Я использую CloudFlare бесплатную функцию обфускации адресов электронной почты: https://support.cloudflare.com/hc/en-us/articles/200170016-What-is-Email-Address-Obfuscation-

Почтовые харвестеры и другие боты бродят по Интернету в поисках электронной почты адреса для добавления в списки, которые нацелены на получателей спама. Этот тренд приводит к увеличению количества нежелательных писем.

Веб-администраторы придумали умные способы защиты от это путем написания адресов электронной почты (то есть, помощь [at] cloudflare [точка] com) или используя встроенные изображения адреса электронной почты. Тем не менее, вы потерять удобство нажатия на адрес электронной почты, чтобы автоматически отправьте электронное письмо.

Включив Обфускацию адресов электронной почты Cloudflare, адреса электронной почты на Ваша веб-страница будет скрыта (скрыта) от ботов, сохраняя при этом они видны людям. На самом деле, нет никаких видимых изменений в вашем сайт для посетителей.

Чтобы предотвратить неожиданное поведение сайта, адреса электронной почты не запутывается, когда они появляются в:

  • Любой атрибут тега HTML, кроме атрибута href тега a.
  • Другие теги HTML
  • Любая страница, которая не имеет MIME-типа "text/html" или "application/xhtml + xml"

Я не связан с CloudFlare. Я просто ценю все, что они предлагают бесплатно.

Ответ 12

Проблема с решениями JavaScript заключается в том, что люди с отключенным JS также не увидят адрес электронной почты. Хотя для меньшинства вам нужна комбинация методов для достижения наилучших результатов.

Многие из этих методов подробно описаны здесь, но я предоставил только решения: https://www.ionos.co.uk/digitalguide/e-mail/e-mail-security/protecting-your-e-mail-address-how-to-do-it/

Комментарии

<p>If you have any questions or suggestions, please write an e-mail to:
us<!-- [email protected] -->[email protected]<!-- @abc.com -->n.com. 
</p>

Скрытые пролеты

<style type="text/css">
span.spamprotection {display:none;}
</style>

<p>If you have any questions or suggestions, please write an e-mail to:
user<span class="spamprotection">CHARACTER SEQUENCE</span>@domain.com. 
</p>

Обратные строки Это может быть неудобно для многоязычных сайтов.

<style type="text/css">
span.ltrText {unicode-bidi: bidi-override; direction: rtl}
</style>
<p>If you have any questions or suggestions, please write an e-mail to:
<span class="ltrText"> [email protected]</span>.
</p>

JavaScript, как и во многих других ответах

<script type="text/javascript">
var part1 = "user";
var part2 = Math.pow(2,6);
var part3 = String.fromCharCode(part2);
var part4 = "domain.com"
var part5 = part1 + String.fromCharCode(part2) + part4;
document.write("If you have any questions or suggestions, please write an e-mail to:
   <href=" + "mai" + "lto" + ":" + part5 + ">" + part1 + part3 + part4 + "</a>.");
</script>

Шифрование ROT13 JavaScript зависит, но также помогает с GDPR, поскольку он зашифрован.

<script type="text/javascript">
function decode(a) {
  return a.replace(/[a-zA-Z]/g, function(c){
    return String.fromCharCode((c <= "Z" ? 90 : 122) >= (c = c.charCodeAt(0) + 13) 
                               ? c : c - 26);
  })
}; 
function openMailer(element) {
var y = decode("znvygb:[email protected]");
element.setAttribute("href", y);
element.setAttribute("onclick", "");
element.firstChild.nodeValue = "Open e-mail software";
};
</script>
<a id="email" href=" " onclick='openMailer(this);'>E-mail: please click</a>

Только CSS Заимствовано здесь: Защитите адрес электронной почты только с помощью CSS

<!doctype html>
<html>
<head>
    <title>Protect e-mail with only css</title>
    <style type="text/css">
        .e-mail:before {
            content: attr(data-website) "\0040" attr(data-user);
            unicode-bidi: bidi-override;
            direction: rtl;
        }
    </style>
</head>
<body>

<span class="e-mail" data-user="nohj" data-website="moc.liamg"></span>

</body>
</html>