Який хороший спосіб перерахувати адресу електронної пошти "Зверніться до нас" на веб-сайті, зменшивши при цьому ймовірність того, що він потрапить спам?
Чи є розміщення електронної адреси в образі найкращою технікою, чи є інші?
Який хороший спосіб перерахувати адресу електронної пошти "Зверніться до нас" на веб-сайті, зменшивши при цьому ймовірність того, що він потрапить спам?
Чи є розміщення електронної адреси в образі найкращою технікою, чи є інші?
Відповіді:
Я передаю всі форми контактів через викинутий обліковий запис Gmail, який пересилає пошту на справжню адресу електронної пошти. Це безкоштовно, це легко, і Gmail виявлення спаму - найкраще.
Він не вимагає додаткових зусиль під час створення веб-сайту, і якщо щось через вас ви отримаєте, просто увійдіть до облікового запису Gmail і позначте його як спам.
Потім ви можете встановити папку "Вхідні" Gmail або автоматично архівувати все, що було надіслано, або навіть видалити його, якщо ви не хочете, щоб додаткова копія зберігалася там.
Використовуйте обфускатор електронної пошти
Моя невідповідь - не робити цього. Сучасні системи електронної пошти, такі як GMail та пристрій проти спаму Barracuda, відмінно справляються з фільтрацією спаму. Будь-який бар'єр, який ви ставите між вами та вашими відвідувачами, означає нижчий рівень залучення та, залежно від типу сайту, потенційну втрату продажів.
Якщо ви турбуєтесь про користувачів, у яких не встановлений нативний поштовий клієнт або не встановлений коректор mailto: обробник правильно, тоді створіть сторінку «Зв’язатися з нами», з ОБ'ЄДНАННЯ пов'язаної адреси електронної пошти та форми (без CAPTCHA) та нехай користувач вибирає.
Спам дратує, але ми несемо наш тягар, а не наших користувачів.
Використовуйте природну мову для написання адреси електронної пошти ...
Наприклад:
thatguy at gmail dot com
Ви здивуєтеся, наскільки складніше написати бота, який може відрізняти природну мову від написання бота, який просто шукає знак @ і переводить звичайну адресу у звичайну.
Це не на 100% захищеність від дурня, але це не гірше, ніж обтурація, і це не відчуже ваших користувачів із вадами зору та / або користувачів, у яких відключений JavaScript.
Оновлення: Ось приклад цієї техніки в дії .
Оновлення 2:
Виявляється, хтось насправді провів це дослідження і розмістив його в Інтернеті. Дивіться публікацію SuperUser, що описує результати або оригінальну статтю
thatguy funny-symbol gmail.com
Особисто я не показую адреси електронної пошти на сайтах, але натомість маю просту у використанні, доступну контактну форму, разом із зазначенням того, з кого походить електронний лист; дозволяючи користувачам надсилати електронні листи власникам та операторам сайтів, не розкриваючи адреси електронної пошти та не переглядаючи різні обручі JavaScript тощо.
Це часто найкращий шлях, якщо фільтрація вашої спаму не є такою складною.
використовуйте 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 у домі, перегляньте деякі інші відповіді на це. але я не великий товариш з цього.
Що я можу зробити , це написати адресу електронної пошти , як слова, обгорнутий в тег діапазону: <span class="email">joe dot blow at gmail dot com</span>
. Потім виконується сценарій на рівні сторінки, захоплюючи будь-які такі проміжки та замінюючи кожне з побудованих посилань електронної пошти. Це може бути не надто незрозумілим, але у мене жодних скарг не було. Плюс якщо JavaScript відключений, користувач все ще може прочитати фактичний проміжок тексту.
Найкраще рішення: використовуйте фільтр спаму .
Я фактично використовую Gmail для обробки свого облікового запису електронної пошти POP3 для свого бізнесу, оскільки перевірити електронну пошту на різних комп’ютерах набагато простіше. Фільтри спаму в Gmail - найкращі в світі.
Таким чином, ви можете просто показати webmaster@example.com як свою електронну адресу і забути про спам.
використовуючи html-кодування типу ʉẮᶗ
, браузер відображатиме його як "abc"
Використовуйте графічну бібліотеку (наприклад, GD, яку підтримує PHP , або подібну) для динамічного створення .png зображень, що містять адреси електронної пошти.
Порівняно з іншою моєю відповіддю, це рішення менш дратує користувачів (але не є прозорим; вони не можуть копіювати та вставляти його, але повинні повторно вводити його з нуля), але також є менш захищеним: комп'ютер може потенційно прочитати невмілий образ.
Але в цілому я думаю, що це хороший компроміс; це зупинить переважну більшість спам-ботів.
Досить непоганим, але не ідеальним способом є створення електронної адреси за допомогою JavaScript. Більшість павуків, які шукають електронні листи, не виконують JavaScript, а значить, не знаходять читабельної адреси електронної пошти.
Ось лише один приклад того, як це можна було зробити.
Я використовую простий скрипт Python для перетворення адреси електронної пошти у поштове посилання, де адреса електронної пошти кодується 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("test123@example.com")
Це дає вихід
<!-- test123@example.com -->
<a href="mailto:test123@example.com">test123@example.com</a>
Коли результат вставляється на веб-сторінку, браузер відображає текст "test123@example.com" як гіперпосилання до "mailto: test123@example.com", тому для кінцевого користувача це так само зручно, як і адреса. в ясні. Але це, здається, переможе багатьох ботів, що збирають урожай.
Очевидно, що я видаляю коментар із простою версією адреси ASCII після того, як я вставив затемнене посилання електронної пошти у відповідне місце у джерелі HTML веб-сторінки.
Попросіть користувача вирішити CAPTCHA, перш ніж показати їм адресу електронної пошти (або якщо у вас є контактна форма, перш ніж дозволити користувачеві надсилати її).
Це найбільше дратує користувачів, але, безумовно, найефективніше.
Я фанат обфускації, де адреса електронної пошти по суті надається за допомогою Javascript.
Наприклад, my@email.com
може бути представлений як
<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>
Що стосується користувача, це звичайний текст і його можна скопіювати та вставити. З іншого боку, ботам буде складніше.
Ось обфускатор, який я використав.
<a href="#" onclick="document.location.href='mailto:...'; return false">
Односторонній:
<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>
Ви можете написати "Не розшифрувати мій електронний лист: користувач у com dot gmail" <noscript>
тегами для тих, у кого вимкнено JavaScript. Таким чином ви отримуєте функцію гіперпосилання. У вас є хороший шанс утримувати подалі від спамерів від вашої адреси, і люди з вимкненим javascript або веб-переглядачами лише текстові можуть ще отримати вашу електронну адресу.
Всі методи обскубання у світі не можуть допомогти в довгостроковій перспективі, якщо у вас з’явиться багато людей, які з вами звертаються. Все, що потрібно, - це хтось відкине вам повідомлення, а згодом заразиться деяким зловмисним програмним забезпеченням, яке сканує вхідні / надіслану пошту / адресну книгу / незалежно від дійсних адрес, і ваша адреса його передається зі списку в список [у мене навіть є контакти хто дурний, щоб розмістити туди адресу електронної пошти та пароль в онлайн-формах з найяскравіших причин, напевно, у вас теж є, останній - це веб-сайт, який пропонував обчислити чиюсь "астрологічну діаграму та прогнози електронної пошти", яка негайно спамувала всі контакти дурня із запрошенням на той самий сайт і <deity> знає лише, які інші списки ми зараз отримуємо] .
Адреса на моїх загальнодоступних веб-сайтах - це не просто викидальна адреса - це на викинутий піддомен. Якщо я починаю отримувати спам на цьому піддомені, я створюю новий, оновлю сайти, де вказані мої контактні дані, і через короткий час я повністю видаляю субдомен із записів DNS. Якщо ви це зробите, або будь-які інші методи викидання адрес, переконайтеся, що ви чітко (на будь-якій сторінці, у якій вказано адресу та в нижньому колонтитулі будь-якої пошти, яку ви надсилаєте за цією адресою), що ця адреса буде змінена в майбутньому, і якщо люди зможуть Не можу пройти перевірку, щоб переконатися, що вони мають правильну адресу.
Перевага полягає в тому, що простою адресою користувачі можуть натискати (якщо їх браузер + поштовий зв’язок пов’язаний таким чином) або скопіювати + вставити, не потребуючи потім використовувати мізки для редагування адреси (мене завжди дивує кількість, інакше Розумні та спостережливі люди не можуть виправити подібні речі правильно). Це також означає, що мій поштовий сервер не проводить своїх днів, підстрибуючи повідомлення, що надсилаються на "випадкові" адреси (aaron @, adam @, amy01 @, ...) на субдоменах, що втратили чинність. Це також не плутає зчитувачі екрану, якими користуються сліпі або погано розміщені.
Ще один варіант, який я ще не намагався - це використовувати запит AJAX для читання електронної адреси та інших деталей. Це може бути дещо ефективніше, ніж document.write
базована обфускація, хоча додасть трохи додаткового навантаження на веб-сервер.
Натомість я використовував форми "зв'яжіться зі мною / нами", але виявив, що вони отримують спам стільки, скільки інколи, просто текстові адреси електронної пошти - іноді за сценаріями, які намагаються використовувати форму для створення облікового запису десь, а не використовувати його як контактну форму.
Якщо у вас є фільтр бота (використовуючи 1x1px, підмережу, відомі боти, виявлення jscript, http-референс та агент браузера), ви можете просто не відображати інформацію, якщо це бот.
Рішення в PHP:
<?
if (!isbot()) {
echo 'mailto:'.$email_address_for_real_people;
}
else {
echo 'mailto:yourself_bot@'.$bots_domain_address;
}
?>
isbot()
- це створена користувачем функція, яка вказує на будь-який режим роботи фільтра бота.
Найпростіше, що я знайшов, - це використовувати контактну форму, де є адреса за замовчуванням, але також можливість користувача вибирати, з ким слід спілкуватися (маркетинг, продажі, технічна підтримка тощо). Потім, виходячи зі значення випадаючого, розміщені форми форми сервер надсилається сервером на відповідну електронну адресу.
Запустіть цей список контактів із таблиці бази даних, щоб ви могли легко оновити / додати записи до спадного меню. Таким чином, ви ніколи не виставляєте будь-якого звернення до широкого світу спам-ботів, і все ж надаєте своїм користувачам чудовий спосіб надсилати відгуки.
Ні в якому разі, Хосе! - Так, Хосе!
Не існує жодного способу "зупинити" збирання a href="mailto:"
електронних адрес. Давно вважається, що використання JavaScript - це хороший спосіб запобігання більшості збору врожаю, але на сьогоднішній день боти досить прокляті для перемоги над цим методом. Вони також можуть перемогти зображення, що містять адреси електронної пошти, так само, як вони можуть перемогти captcha, використовуючи програмне забезпечення decaptcha.
Кращий шлях!
Кращим підходом буде використання поважного сервісу пошти, який забезпечує хороше блокування спаму. Google G Suite та Microsoft Office 365 використовують алгоритм, який не відповідає жодному програмному забезпеченню на ринку, головним чином тому, що вони отримують мільйони електронних листів на день, і вони можуть "дізнатися" та "чорний список спамерів" задовго до того, як вони навіть спробують вам надіслати електронний лист.
Насправді рік тому Google заявив, що його технологія машинного навчання тепер блокує 99,9% повідомлень про спам та фішинг Gmail , місцеві сервери Microsoft Exchange та поштові сервери, що працюють за plesk / cpanel, не в змозі конкурувати з цим захистом.
Підсумок
Блокуйте спам за допомогою авторитетного поштового сервісу, здатного до машинного навчання AI. Ви також можете зробити це на крок далі, не допускаючи спамерів відвідувати ваш сайт за допомогою Cloudflare, який виявить значну більшість агресивних ботів, перш ніж вони потраплять на ваш сайт.
Я використовував fred@no-spam.domain.com роками. Користувачі зазвичай знають достатньо, щоб видалити "не-спам".
В іншому випадку я просто використовую контактну форму з "captcha" і надсилаю пошту прямо з веб-сайту.
Ось ще один обфускатор електронної пошти: Enkoder , від Dan Benjamin. Він поставляється як онлайн-додаток, так і окремий додаток для Mac.
Одне, що я роблю, - це використовувати API від http://www.stopforumspam.com, щоб перевірити наявність спамерів. Не соромтеся звертатися до мене за деталями, і я буду радий допомогти вам у цьому!
Буд Манц
Manz Web Designs, LLC
Якщо ви не заперечуєте над використанням JavaScript, ви можете використовувати щось на зразок ROT13 для обмацування адреси електронної пошти. Наприклад, див. Це:
http://scott.yang.id.au/2003/06/obfuscate-email-address-with-javascript-rot13/
Особисто я вважаю за краще скористатися формою зв’язку з нами і не переживайте про спам-боти, але, звичайно, все залежить від ваших вимог.
Я використовую функцію PHP для створення деякого javascript для виводу сценарію під час виконання. Зауважте, що вам не потрібен PHP для генерації JS під час виконання, ви можете генерувати JS один раз на локальному рівні, а потім включити статичний JS на свою сторінку.
Ви також можете використовувати пов’язану функцію за допомогою цього фрагмента нижче, щоб автоматично обмежувати адреси електронної пошти в заданому HTML (де $ обработанный содержание - 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);
}
}
Якщо ви використовуєте контактну форму, ви можете зробити цікаву техніку використання випадкових імен для своїх даних.
Наприклад, я роблю контактну форму, замість того, щоб використовувати електронну пошту як вхідний, я використовував би лайм, те саме з ім'ям (eman) та коментарем (tnemmoc). Боти насправді не знають, що роблять ці входи, тому просто ігнорують їх.
Використовуйте Zoho Creator, щоб налаштувати контактну форму. Відгуки, які ви отримаєте, зберігатимуться в базі даних, до якої ви можете отримати доступ в Інтернеті, а також вам буде надіслано електронною поштою.