Способ перечислить адрес электронной почты «Свяжитесь с нами» на веб-сайте, но уменьшите вероятность спама?

Что такое хороший способ перечислить адрес электронной почты «Связаться с нами» на веб-сайте, уменьшая вероятность того, что он получит спам?

Является ли адрес электронной почты в изображении лучшей техникой или есть другие?

70 голосов | спросил Chris W. Rea 8 J000000Thursday10 2010, 23:21:49

26 ответов


52

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

Это не требует дополнительных усилий при создании веб-сайта, и если что-то проходит через вас, просто войдите в учетную запись Gmail и отметьте его как спам.

Затем вы можете установить почтовый ящик Gmail для автоматического архивирования всего, что было перенаправлено, или даже удалить его, если вы не хотите, чтобы дополнительная копия хранилась там.

ответил Callan 9 J000000Friday10 2010, 03:29:29
30
ответил Jason 8 J000000Thursday10 2010, 23:24:32
20

Мой ответ не должен делать это. Современные системы электронной почты, такие как GMail и устройство защиты от спама Barracuda, отлично справляются с фильтрацией спама. Любой барьер, который вы ставите между вами и вашими посетителями, означает более низкий уровень взаимодействия и, в зависимости от типа сайта, потенциальную потерю продаж.

Если вас беспокоят пользователи, у которых нет собственного почтового клиента, установленного или у которого нет корректного набора mailto: handler, обратитесь к странице «Контакты» с указанием связанного адреса электронной почты и формы (без CAPTCHA) и разрешить пользователю выбирать.

Спам раздражает, но это наше бремя несет, а не наши пользователи.

ответил JasonBirch 9 J000000Friday10 2010, 12:29:22
18

Используйте естественный язык, чтобы указать адрес электронной почты ...

Пример:

thatguy at gmail dot com

Вы были бы удивлены, насколько сложнее написать бот, который может отличить естественный язык от написания бота, который просто ищет знак @ и регулярное выражение обычного адреса.

Он не является 100% надежным, но он не хуже, чем обфускация, и он не будет отчуждать ваших слабовидящих пользователей и /или пользователей, у которых отключен JavaScript.

Обновление: Вот пример этой техники в действии .

Обновление 2:

Оказывается, кто-то действительно провел исследование по этому вопросу и разместил его в Интернете. См. сообщение SuperUser, описывающее результаты или исходная статья

ответил Evan Plaice 9 J000000Friday10 2010, 03:16:38
12

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

Это часто лучший способ пойти, если ваша фильтрация спама не такая сложная.

ответил Zhaph - Ben Duguid 9 J000000Friday10 2010, 11:37:58
9

используйте css, чтобы скрыть некоторый шум от реального текста (только все в одной строке, я отформатировал его, чтобы лучше проиллюстрировать технику):

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

, а затем используйте этот маленький css-фрагмент:

.spam { display: none; }

, если вам нужен достоверный mailto: контент, тогда вы должны создать его через jscript в dom, см. некоторые другие ответы для этого. но я не большой друг этого.

ответил akira 9 J000000Friday10 2010, 08:09:30
8

Я пишу адрес электронной почты в виде слов, заключенных в тег span: <span class="email">joe dot blow at gmail dot com</span>. Затем запускается скрипт на уровне страницы, захватывая любые такие промежутки и заменяя каждую на созданную ссылку электронной почты. Это может быть не слишком неясным, но у меня не было никаких жалоб. Кроме того, если JavaScript отключен, пользователь все равно может прочитать фактический текст диапазона.

ответил Grant Palin 9 J000000Friday10 2010, 09:36:57
8

Лучшее решение: использовать спам-фильтр .

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

Таким образом, вы можете просто отображать [email protected] в качестве своего адреса электронной почты и забыть о спаме.

ответил DisgruntledGoat 12 J000000Monday10 2010, 19:59:21
7

, используя кодировку html, такую ​​как &#649&#7854&#7575, браузер отобразит ее как "abc"

ответил ilhan 8 J000000Thursday10 2010, 23:27:48
5

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

По сравнению с моим другим ответом это решение менее раздражает пользователей (но не прозрачно, они не могут копировать и вставлять его, но должны повторно вводить его с нуля), но также менее надежно: компьютер может читать незашифрованное изображение.

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

ответил Andreas Bonini 9 J000000Friday10 2010, 03:24:53
5

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

Здесь является лишь одним из примеров того, как это можно сделать.

ответил txwikinger 8 J000000Thursday10 2010, 23:23:43
5

Я использую простой скрипт Python для преобразования адреса электронной почты в ссылку mailto, где адрес электронной почты является кодировкой HTML-объекта. Это полностью прозрачно для пользователя, но, похоже, заслоняет содержимое, достаточное для того, чтобы победить большинство простых созданных ботов.

#! /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]")

Это дает выход

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

Когда результат вставляется в веб-страницу, браузер отображает текст «[email protected]» в качестве гиперлинии на «mailto: [email protected]», поэтому он так же удобен для конечного пользователя, как и включая адрес в ясном виде. Но, похоже, он побеждает многих ботаников.

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

ответил Stephen C. Steel 17 J000000Saturday10 2010, 01:15:02
4

Попросите пользователя разрешить CAPTCHA, прежде чем показывать им адрес электронной почты (или если у вас есть контактная форма, прежде чем разрешить пользователю отправить его).

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

ответил Andreas Bonini 9 J000000Friday10 2010, 03:22:18
3

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

Например, [email protected] может отображаться как

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

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

Вот obfuscator , который я использовал.

ответил Paperjam 8 J000000Thursday10 2010, 23:27:35
2

Один из способов:

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

Вы можете написать «Unscramble my email: user at com dot gmail» в <noscript> для тех, у кого отключен javascript. Таким образом вы получаете функциональность гиперссылки. У вас есть хороший шанс на удаление спамеров от вашего адреса, а люди с выключенным javascript или текстом только браузеры все равно могут получить ваш адрес электронной почты.

ответил Adam 9 J000000Friday10 2010, 04:06:50
2

Все методы обфускации в мире не могут помочь в конечном счете, если вы получите много людей, которые свяжутся с вами. Все, что требуется, - это отправить кому-то сообщение, а затем заразиться каким-либо вредоносным ПО, которое сканирует их почтовую /адресную книгу в папке «Входящие» /«Отправка» и т. Д. Для действительных адресов, а также адрес, который передается из списка в список [У меня даже есть контакты, которые настолько глупы, что помещают туда адрес электронной почты и пароль в онлайн-формы по самым идиотским причинам, возможно, вы тоже, самый последний из них был сайтом, который предлагал вычислить чей-то «электронный астрологический план и прогнозы электронной почты» », который сразу же рассылал все контакты дурака с приглашением на тот же сайт и <божество> только знает, какие другие списки мы теперь имеем в результате] .

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

Преимущество состоит в том, что просто простой адрес для людей, которым нужно щелкнуть (если их браузер + почтовый ящик связан таким образом) или скопировать + вставить без необходимости использовать свой мозг для редактирования адреса после этого (я всегда удивляюсь сколько иначе разумные и наблюдательные люди не могут получить такое право). Это также означает, что мой почтовый сервер не проводит свои дни, отскакивая сообщения, отправленные на «случайные» адреса (aaron @, adam @, amy01 @, ...) в истекших поддоменах. Он также не путает экранные считыватели, используемые слепыми или плохо расположенными.

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

Раньше я использовал формы «contact me /us», но я обнаружил, что они получают спам столько, сколько, иногда больше, чем обычные текстовые адреса электронной почты - иногда скриптами, которые пытаются использовать форму для создания учетной записи где-то, а не использовать его как форму контакта.

ответил David Spillett 6 PM00000010000005131 2010, 13:20:51
1

Если у вас есть бот-фильтр (с использованием 1x1px, подсети, известных ботов, обнаружения jscript, http referrer и агента браузера), вы можете просто не отображать информацию, если ее бот.

Решение в PHP:

<?
if (!isbot()) {
  echo 'mailto:'.$email_address_for_real_people;
  }
  else {
  echo 'mailto:[email protected]'.$bots_domain_address;
  }
?>
ответил Talvi Watia 6 AM00000050000004931 2010, 05:25:49
1

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

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

ответил Milner 6 PM00000050000003531 2010, 17:29:35
0

Я использовал [email protected] в течение многих лет. Пользователи обычно знают достаточно, чтобы удалить «спам-спам».

В противном случае я просто использую форму контакта с «captcha» и отправляю почту непосредственно с веб-сайта.

ответил Gary.Ray 8 J000000Thursday10 2010, 23:33:58
0

Вот еще один обфускатор электронной почты: Enkoder от Dan Benjamin. Он поставляется как онлайн-приложение, так и автономное приложение для Mac.

ответил Alex 15 J000000Thursday10 2010, 00:37:00
0

Одна вещь, которую я делаю, - это использовать API из http://www.stopforumspam.com , чтобы проверить наличие спамеров , Не стесняйтесь обращаться ко мне за подробностями, и я буду рад помочь вам!

Бад Манц

Manz Web Designs, LLC

ответил 21 J000000Wednesday10 2010, 02:23:17
0

Если вы не против использования javascript, вы можете использовать что-то вроде ROT13 для обфускации адреса электронной почты. Например, см. Это:
http: //scott.yang.id.au/2003/06/obfuscate-email-address-with-javascript-rot13/

Лично я предпочитаю использовать контактную форму и не беспокоиться о спам-ботах, но, конечно, все зависит от ваших требований.

ответил Mee 1 12010vEurope/Moscow11bEurope/MoscowMon, 01 Nov 2010 02:20:24 +0300 2010, 02:20:24
0

Я использую функцию PHP для создания некоторого javascript для вывода скрипт во время выполнения. Обратите внимание, что вам не нужен нужен PHP для создания JS во время выполнения, вы можете создать JS один раз локально, а затем включить статический JS на своей странице.

Вы также можете использовать связанную функцию с этим фрагментом ниже, чтобы автоматически обфускать адреса электронной почты в заданном HTML (где $ обработанContent - это 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);
 }
}
ответил iloveitaly 26 52010vEurope/Moscow11bEurope/MoscowFri, 26 Nov 2010 06:31:51 +0300 2010, 06:31:51
0

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

Например, я создаю контактную форму, вместо того, чтобы использовать электронную почту в качестве ввода, я бы использовал liame, то же самое с именем (eman) и comment (tnemmoc). Боты на самом деле не знают, что делают эти входы, поэтому они просто игнорируют их.

ответил dkuntz2 29 12010vEurope/Moscow11bEurope/MoscowMon, 29 Nov 2010 01:56:04 +0300 2010, 01:56:04
0

Я создал форму /таблицу Google Docs. Я могу проверять записи в форме один раз в день, и мой почтовый ящик не заливается.

ответил Sri 1 12010vEurope/Moscow11bEurope/MoscowMon, 01 Nov 2010 07:07:17 +0300 2010, 07:07:17
0

Используйте Zoho Creator , чтобы создать контактную форму. Полученная вами обратная связь будет храниться в базе данных, доступ к которой можно получить через Интернет и amp; он также будет отправлен вам по электронной почте.

ответил mvark 26 52010vEurope/Moscow11bEurope/MoscowFri, 26 Nov 2010 06:07:00 +0300 2010, 06:07:00

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132